datetime 是Python处理日期和时间的标准库,用于获取日期和进行日期计算等。
需要理解 timestamp,UTC标准时区,时差这些概念。
Python 的日期相关的标准库比较多(略有杂乱),有 datetime, time, calendar。
datetime 库包括 date 日期,time 时间, datetime 日期和时间,tzinfo 时区,timedelta 时间跨度计算 等主要对象。
获取当前日期和时间:now = datetime.now()
日期戳和日期的区别,日期戳更加精确,日期只是年月日 根据需要使用,大多数情况下只需要日期即可
Time 对于时间的处理更加精确,用时间戳的表达方式
时间戳定义为格林威治时间1970年01月01日00时00分00秒起至现在的总秒数,时间戳是惟一的
In [2]:
# 显示今天日期
# 显示今天 datetime 和 time
from datetime import datetime, date
import time
print(datetime.now())
print(date.today())
print(time.time())
In [3]:
# 各种日期时间类型的数据类型
print(type(datetime.now()))
print(type(date.today()))
print(type(time.time()))
In [3]:
# 连续运行显示时间戳,看看时间戳差了多少毫秒
for i in range(10):
print(time.time())
In [4]:
# 用 time() 来计时,算10万次平方,看看哪台电脑速度快
import time
a = time.time()
for i in range(100000):
j = i * i
b = time.time()
print('time:', b-a)
字符串转化为日期:datetime.strptime()
日期转换为字符串:datetime.strftime()
日期字符串格式,举例
cday1 = datetime.now().strftime('%a, %b %d %H:%M')
cday2 = datetime.now().strftime('%A, %b %d %H:%M, %j')
cday3 = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
In [13]:
# 字符串转化为日期
dday = datetime.strptime('2017-1-2 18:19:59', '%Y-%m-%d %H:%M:%S')
print(dday)
print(type(dday))
print('\n')
# 日期转换为字符串
day1 = datetime.now().strftime('%Y, %W, %m %d %H:%M')
print(day1)
print(type(day1))
In [37]:
# 日期转换为字符串,各种格式
cday1 = datetime.now().strftime('%a, %b %d %H:%M')
cday2 = datetime.now().strftime('%A, %b %d %H:%M, %j')
cday3 = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print(cday1)
print(cday2)
print(cday3)
In [14]:
# 格式化时间戳为本地的时间 converts number of seconds to local time
print(time.localtime(time.time()))
print(time.localtime()) # If secs is not provided or None, the current time as returned by time() is used
print(type(time.localtime(time.time())))
In [21]:
# 本地时间转换为字符串
t = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
print(t)
print(type(t))
In [15]:
# 日期计算
# timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
from datetime import timedelta
now = datetime.now()
now1 = now + timedelta(hours=-10)
print(now)
print(now1)
In [9]:
# 日期的各个变量的计算
now = datetime.now()
now1 = now + timedelta(hours=10, minutes=20, seconds=-10)
print(now)
print(now1)
In [ ]:
from datetime import datetime
#日期格式转换
newyear = datetime.strptime('2018-01-01', '%Y-%m-%d')
#获取现在的时间
now = datetime.now()
#时间差
timedelta = newyear-now
print(timedelta.days)
print(type(newyear))