1. 获取当前时间
1.1 from datetime import datetime # 从datetime模块导入datetime类。
1.2 dt = datetime.now() # 获取当前时间,dt是datetime类的一个实例。
2. 获取指定日期和时间
2.1 df = datetime(2018, 6, 21, 18,15) # 直接用指定的日期时间参数创建datetime对象。
3. datetime转换为timestamp
3.1 python中timestamp用浮点数表示;整数部分表示自1970-01-01 00:00:00 UTC+00:00的秒数;小数部分表示豪秒数。
3.2 timestamp与时区无关。
3.3 示例:
3.3.1 dt = datetime(2015, 4, 19, 12, 20)
3.3.2 dt.timestamp() # == 1429417200.0。通过datetime对象的timestamp方法,可以将datetime转换为timestamp。
4. timestamp转换为datetime
4.1 示例一:将timestamp转换为本地时间:
4.1.1 dt = datetime.fromtimestamp(1429417200.0)
4.1.2 # 调用datetime类的fromtimestamp方法将timestamp转换为datetime(本地时间,即操作系统设定的时区的时间)。
4.1.3 # print(dt) == 2015-04-19 12:20:00
4.2 示例二:将timestamp转换为UTC时间:
4.2.1 dt = datetime.utcfromtimestamp(1429417200.0) #
4.2.2 # print(dt) == 2015-04-19 04:20:00
5. str转换为datetime
5.1 dt = datetime.strptime('2015-4-19 12:20:00', '%Y-%m-%d %H:%M:%S')
5.2 # print(dt) == 2015-04-19 12:20:00
5.3 # dt是一个datetime实例。
6. datetime转换为str
6.1 datetime.now().strftime('%a, %b %d %H:%M')
6.2 # 输出为'Thu, Jun 21 19:04'
7. datetime加减
7.1 from datetime import datetime, timedelta
7.2 new = datetime.now() + timedelta(hour=10) # 当前日期时间之后10小时的日期时间。
7.3 old = datetime.now() - timedelta(day=1, hour=10) # 当前时间之前1天10小时前的日期时间。
8. 本地时间转为UTC时间
8.1 from datetime import datetime, timedelta, timezone
8.2 tz_utc_8 = timezone(timedelta(hours=8)) # 创建UTC+08:00时区。
8.3 dt = datetime.now() # 获取本地的日期时间
8.4 dt_utc_8 = dt.replace(tzinfo = tz_utc_8) # 在本地日期时间后加上时区信息。
9. 时区转换
9.1 from datetime import datetime, timezone, timedelta
9.2 dt_utc = datetime.utcnow() # 获取UTC+00:00时区,当前的日期时间。
9.3 dt_tz0 = dt_utc.replace(tzinfo = timezone.utc) # 在utc日期时间的后面,加上UTC+0:00时区信息。
9.4 tz8 = timezone(timedelta(hours = 8)) # 创建UTC+8:00时区。
9.5 dt_tz8 = dt_tz0.asttimezone(tz8) # 将UTC+0:00时区当前的日期时间转换为UTC+8:00时区当前的日期时间。
9.6 tz9 = timezone(timedelta(hours = 9)) # 创建UTC+9:00时区。
9.7 dt_tz9 = dt_tz8.asttimezone(tz9) # 将UTC+8:00时区当前的日期时间转换为UTC+9:00时区当前的日期时间。
9.8 注意:任何带时区的datetime都可以通过astimezone,转换到任意时区的日期时间。