Python初学者Python

Python datetime时间日期处理

2019-08-06  本文已影响5人  Rethink

Python v3.7.0
import datetime

datetime模块定义了5个类,分别是:
- datetime.date:表示日期的类
- datetime.datetime:表示日期时间的类
- datetime.time:表示时间的类
- datetime.timedelta:表示时间间隔,即两个时间点的间隔
- datetime.tzinfo:时区的相关信息

datetime.date 表示日期的类

someday = datetime.date(year=2019, month=7, day=14)  # 任何一天
today = datetime.date.today()  # 今天
print(someday, today)  # 默认格式:%Y-%m-%d
print(today.strftime('%Y/%m/%d'))  # str, 2019/07/12
print(today.ctime())  # Fri Jul 12 00:00:00 2019
print(today.weekday())  # 返回0-6,代表周一到周日,其中周一返回0

print(today.isoformat())  # 2019-07-12
print(today.isocalendar())  # (2019, 28, 5)
print(someday.isoweekday())  # 返回的1-7代表周一至周日
ts = datetime.date.fromtimestamp(1562677551)
print(ts, type(ts))
n = today.replace(year=2000, month=1, day=1)  # 2019-07-01
print(today, n)
tm = today.timetuple()
print(tm[0], type(tm))  # 索引取值

datetime.time 表示时间的类

sometime = datetime.time(hour=21, minute=11, second=55, microsecond=200)    # 任何时间
print(sometime, type(sometime))  # 21:11:55.000200

# 指定时间格式
print(sometime.strftime('%H%M%S'))  # 211155

# 替换给定时间,但不改变原时间
n = sometime.replace(hour=20)
print(sometime, n)

print(sometime.tzname())  # 返回时区名字
print(sometime.utcoffset())  # 返回时区的时间偏移量

datetime.datetime 表示日期时间的类

moment = datetime.datetime(year=2100, month=10, day=1, hour=1, minute=1, second=1, microsecond=1)
now = datetime.datetime.now()
print(moment, now)

# 指定格式
print(now.strftime('%Y%m%d_%H%M%S'))  # 日期格式转换为字符串格式
print(datetime.datetime.strptime('20190712_152706', '%Y%m%d_%H%M%S'))  # 由字符串格式转化为日期格式
print(now.date())  # 返回当前日期时间的日期部分
print(now.time())  # 返回当前日期时间的时间部分

# 根据指定时间戳返回一个datetime.datetime对象
st = datetime.datetime.fromtimestamp(1562677551)
print('当前时间为:%s' % st)

# 日期替换
n = now.replace(hour=20)
print(now, n)

datetime.timedelta 表示时间间隔的类

t1 = datetime.datetime(2016, 10, 20)
t2 = datetime.datetime(2015, 11, 2)
delta = t2 - t1
print(delta, type(delta))  # -353 days, 0:00:00 <class 'datetime.timedelta'>

# 计算两个日期之间的天数/秒数差值
print(abs(delta.days))  # 353
print(delta.total_seconds())  # -30499200.0 推荐使用此方法
上一篇下一篇

猜你喜欢

热点阅读