python有可以处理日期时间的模块:datetime。其中常用的有datetime类、date类、time类,而datetime类包含了后两者,接下来主要说的是datetime类。
导入datetime类
from datetime import datetime
构造datetime对象
class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, fold=0)
#构造datetime对象
d = datetime(2020,8,12,14,19,23)
print(d)
#output
2020-08-12 14:19:23
d是datetime类构造的一个实例,构造datetime对象时,year,month,day是必选的参数,参数范围为
类方法(@classmethod)
获取当前日期时间的类方法:today()、now()、utcnow()
dt = datetime.today()
dn = datetime.now()
du = datetime.utcnow()
print(dt)
print(dn)
print(du)
#output
2020-08-12 14:36:22.167200
2020-08-12 14:36:22.167200
2020-08-12 06:36:22.167200 #utc为世界协调时间utc+8小时为北京时间
参数为时间戳的类方法:fromtimestamp(timestamp, tz=None)、utcfromtimestamp(timestamp)
时间戳可以由time模块中的time()方法获得
import time
df = datetime.fromtimestamp(time.time())
duf = datetime.utcfromtimestamp(time.time())
print(df)
print(duf) #duf为世界协调时间
#output
2020-08-12 14:57:13.479200
2020-08-12 06:57:13.479200
fromordinal(ordinal),参数为天数,返回的是从公元0年至给定天数的日期时间对象
df = datetime.fromordinal(30)
print(df)
#output
0001-01-30 00:00:00
combine(date, time, tzinfo=self.tzinfo):给定的date对象、time对象返回一个新的datetime对象
from datetime import datetime,date,time
#使用类date、time构造date对象、time对象
d = date(2020,8,12)
t = time(15,6,34)
dc = datetime.combine(d,t)
print(dc)
#output
2020-08-12 15:06:34
实例方法(instancemethod)
dt = datetime.today()
dt.date() #返回date对象
dt.time() #返回time对象
dt.timestamp() #返回给定日期时间的时间戳
dt.weekday() #星期一为0,星期天为6
dt.isoweekday() #星期一为1,星期天为7
dt.isocalendar() #返回数组,年、第几周、星期几