廖雪峰python学习笔记【18】datetime

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,转换到任意时区的日期时间。


猜你喜欢

转载自blog.csdn.net/liufuchun111/article/details/80774062