zoukankan      html  css  js  c++  java
  • Python 时间操作 格式化“2020-10-16T17:36:00+08:00“时间

    时间戳操作很多,每次用点时候总是去查,查的麻烦,现在自己也好好归纳一下。

    • 我现在刚好有个需求需要获取当天零点时间戳,但是网上查的大部分都是用时间戳相减,或者用时区的方式,总感觉不是很好,我就自己写了一个。

    获取凌晨时间

    # 方法一 获取凌晨时间戳
    import time
    import datetime
    
    # 思路特别简单 
    dt = time.strftime("%Y-%m-%d")
    print(dt)  # 先得到前缀 2019-12-13 这种,然后在拼接成2019-12-13 00:00:00
    time_array = time.strptime(f"{dt} 00:00:00", "%Y-%m-%d %H:%M:%S")
    # 然后转化为时间戳,思路特别简单
    timestamp = time.mktime(time_array)
    print(int(timestamp) * 1000)
    
    
    # 方法二 刚搜出来的,感觉不错
    day_time = time.mktime(datetime.date.today().timetuple())
    print(int(day_time) * 1000)
    
    

    格式化时间比大小

    import datetime
    
    d1 = datetime.datetime.strptime('2020-01-05 18:22:22', '%Y-%m-%d %H:%M:%S')
    d2 = datetime.datetime.strptime('2020-01-01 12:24:15', '%Y-%m-%d %H:%M:%S')
    # 判断大小
    print(d2 > d1)  # False
    print(d2 < d1)  # True
    # 计算间隔天数
    delta = d1 - d2
    print(delta.days)  # 输出 4 
    
    

    月,日只取整数

    import time
    
    dt = time.strftime("%Y-%m-%d")
    print(dt) # 输出 2020-05-05
    
    # 但是我只想要 2020-5-5这样的格式, %后母加- 如 %-m  %-d
    dt = time.strftime("%Y-%-m-%-d")
    print(dt) # 输出 2020-5-5
    
    

    获取昨天,明天等时间

    当前参考时间为 2020/4/27
    from datetime import timedelta, date
    # 获取昨日时间对象
    yesterday_obj = date.today() + timedelta(days=-1)
    print(yesterday_obj)  # 输出昨日凌晨对象 class: datetime.date(2020, 4, 26)
    
    # 获取昨天时间格式
    yesterday_str = (date.today() + timedelta(days=-1)).strftime("%Y-%m-%d %H:%M:%S")
    print(yesterday_str)  # 输出昨日凌晨时间 str:'2020-04-26 00:00:00'
    
    # 获取前天 直接days=-2
    
    
    # 获取明日时间对象
    tomorrow_obj = date.today() + timedelta(days=+1)
    print(tomorrow_obj)   # 输出明日时间对象 class: datetime.date(2020, 4, 28)
    
    # 获取民日时间格式化字符串
    tomorrow_str = (date.today() + timedelta(days=+1)).strftime("%Y-%m-%d %H:%M:%S")
    print(tomorrow_str)   # 输出明日凌晨时间 str:'2020-04-28 00:00:00'
    

    时间戳格式化时间

    
    import time
    
    time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(1605781931))
    # 输出 '2020-11-19 18:32:11'
    

    格式化特殊时间字符串 "2020-10-16T17:36:00+08:00"

    import datetime
    t = "2020-10-16T17:36:00+08:00"
    
    new_t = datetime.datetime.strptime(t,"%Y-%m-%dT%H:%M:%S+08:00").strftime("%Y-%m-%d %H:%M:%S")
    # '2020-10-16 17:36:00'
    
    
    t2 = "2020-10-16T17:36:00Z"
    new_t2 = datetime.datetime.strptime(t2,"%Y-%m-%dT%H:%M:%SZ").strftime("%Y-%m-%d %H:%M:%S")
    # '2020-10-16 17:36:00'
    
    
    

    时间戳还原成datetime对象

    from datetime import datetime
    
    ts = 1608902287.504388
    
    d = datetime.fromtimestamp(t)
    # datetime.datetime(2020, 12, 25, 21, 18, 7, 504388)
    
    

    发现其他博客也介绍的很详细,留下链接以便日后查看

  • 相关阅读:
    mall
    将UNICODE编码转换为中文
    460. LFU Cache
    957. Prison Cells After N Days
    455. Assign Cookies
    453. Minimum Moves to Equal Array Elements
    434. Number of Segments in a String
    1203. Sort Items by Groups Respecting Dependencies
    641. Design Circular Deque
    441. Arranging Coins
  • 原文地址:https://www.cnblogs.com/CharmCode/p/14142843.html
Copyright © 2011-2022 走看看