datetime.now()详解

发布时间:2023-05-20

一、基本概念

datetime模块是Python的标准模块,提供了各种处理日期和时间的类。其中,datetime类提供了日期和时间的组合。 而datetime.datetime.now()方法可以获取当前的日期和时间,并以datetime.datetime对象的形式返回。

二、常用的参数

datetime.datetime.now()方法还可以接受一个时区参数,可以使用pytz模块的timezone类创建时区对象,例如:

import pytz
tz = pytz.timezone('Asia/Shanghai')
now = datetime.datetime.now(tz)

在上面的代码中,创建了一个名为tz的时区对象,然后将其作为datetime.datetime.now()的参数,获取当前的日期和时间。

三、常用的属性和方法

1. datetime.datetime.now().year/month/day/hour/minute/second/microsecond

这些属性可以分别获取当前日期和时间的年、月、日、时、分、秒和微秒。

now = datetime.datetime.now()
year = now.year  # 获取当前年份
month = now.month  # 获取当前月份
day = now.day  # 获取当前日期
hour = now.hour  # 获取当前小时
minute = now.minute  # 获取当前分钟
second = now.second  # 获取当前秒数
microsecond = now.microsecond  # 获取当前微秒数

2. datetime.datetime.now().date()

date()方法可以获取当前日期,并以datetime.date对象的形式返回。

now = datetime.datetime.now()
today = now.date()  # 获取当前日期

3. datetime.datetime.now().time()

time()方法可以获取当前时间,并以datetime.time对象的形式返回。

now = datetime.datetime.now()
current_time = now.time()  # 获取当前时间

4. datetime.datetime.now().strftime(format)

strftime()方法可以将datetime.datetime对象按照指定的格式,转换成字符串。 其中format参数是格式化字符串,对应的格式化符号见下表:

符号 含义
%Y 年份,四位数字
%m 月份,01~12
%d 日期,01~31
%H 小时,00~23
%M 分钟,00~59
%S 秒数,00~59
%f 微秒数,000000~999999
%a 星期几的缩写,例如Mon
%A 星期几的全称,例如Monday
%b 月份的缩写,例如Jan
%B 月份的全称,例如January
%p 上午或下午,AM或PM
例如:
now = datetime.datetime.now()
formatted_time = now.strftime('%Y-%m-%d %H:%M:%S.%f')  # 将datetime.datetime对象转换成字符串

四、示例代码

下面是一个完整的示例代码,演示了如何使用datetime.datetime.now()方法获取当前日期和时间,并将其转换成字符串:

import datetime
now = datetime.datetime.now()
formatted_time = now.strftime('%Y-%m-%d %H:%M:%S.%f')
print('当前时间:', formatted_time)