datetime 模块
datetime是Python处理日期和时间的标准库
获取当前日期和时间
示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 常用内建模块-datetime
# 注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import datetime导入的才是datetime这个类。
from datetime import datetime
# 获取当前日期和时间
def getCurDateTime():
# 获取当前系统时间
now = datetime.now()
print(now)
print(type(now))
# 获取指定日期和时间
def customDateTime():
dt = datetime(2018, 8, 18, 8, 8, 8)
print(dt)
def runTest():
getCurDateTime()
customDateTime()
runTest()
运行结果
D:\PythonProject\sustudy>python main.py
2017-12-18 14:43:12.464594
<class 'datetime.datetime'>
2018-08-18 08:08:08
datetime转换为 timestamp
timestamp时间是已1970年1月1日 00:00:00 UTC+00:00时区的时刻为起始时间的计算的
# datetime 转换为 timestamp
def datetime2timestamp():
dt = datetime(2018, 8, 18, 8, 8, 8)
result = dt.timestamp()
# 类似这样的浮点数格式 1534550888.0
print(result)
timestamp 转换为 datetime
# timestamp 转换为 datetime
def timestamp2datetime():
time = 1534550888.0
# 本地时间即本地市区对应的时间
result = datetime.fromtimestamp(time)
# 2018-08-18 08:08:08
print(result)
# UTC标准时间,格林威治 UTC+0:00时区
result = datetime.utcfromtimestamp(time)
# 2018-08-18 00:08:08
print(result)
str 转换为 datetime
# str 转换为 datetime
def str2datetime(strTime):
mTime = datetime.strptime(strTime, "%Y-%m-%d %H:%M:%S")
print(mTime)
def runTest():
str2datetime("2018-08-18 08:08:08")
runTest()
datetime 转换为 str
# datetime 转换为 str
def datetime2str():
now = datetime.now()
# Mon , Dec 18 15 : 25
print(now.strftime("%a , %b %d %H : %M"))
datetime 加减
# datetime 加减
def operaterDateTime():
now = datetime.now()
print("curTime ", now)
result = now + timedelta(days = 1)
print("新增一天 ", result)
result = now - timedelta(days = 1)
print("减去一天 ", result)
运行结果
D:\PythonProject\sustudy>python main.py
curTime 2017-12-18 15:33:55.771059
新增一天 2017-12-19 15:33:55.771059
减去一天 2017-12-17 15:33:55.771059
本地时间转换为UTC时间
# 本地时间转换为UTC时间
def local2UtcTime():
# 本地时间
now = datetime.now()
print("本地时间 ", now)
utcNow = now.astimezone(timezone.utc)
print("UTC时间 ", utcNow)
运行结果
D:\PythonProject\sustudy>python main.py
本地时间 2017-12-18 17:06:53.723494
UTC时间 2017-12-18 09:06:53.723494+00:00
完整示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 常用内建模块-datetime
from datetime import datetime, timedelta,timezone
# datetime 转换为 timestamp
def datetime2timestamp():
dt = datetime(2018, 8, 18, 8, 8, 8)
result = dt.timestamp()
# 类似这样的浮点数格式 1534550888.0
print(result)
# timestamp 转换为 datetime
def timestamp2datetime():
time = 1534550888.0
# 本地时间即本地市区对应的时间
result = datetime.fromtimestamp(time)
# 2018-08-18 08:08:08
print(result)
# UTC标准时间,格林威治 UTC+0:00时区
result = datetime.utcfromtimestamp(time)
# 2018-08-18 00:08:08
print(result)
# str 转换为 datetime
# strTime = "2018-08-18 08:08:08"
def str2datetime(strTime):
mTime = datetime.strptime(strTime, "%Y-%m-%d %H:%M:%S")
# 2018-08-18 08:08:08
print(mTime)
# datetime 转换为 str
def datetime2str():
now = datetime.now()
# Mon , Dec 18 15 : 25
print(now.strftime("%a , %b %d %H : %M"))
# datetime 加减
def operaterDateTime():
now = datetime.now()
print("curTime ", now)
result = now + timedelta(days = 1)
print("新增一天 ", result)
result = now - timedelta(days = 1)
print("减去一天 ", result)
# 本地时间转换为UTC时间
def local2UtcTime():
# 本地时间
now = datetime.now()
print("本地时间 ", now)
utcNow = now.astimezone(timezone.utc)
print("UTC时间 ", utcNow)
def runTest():
pass
runTest()