zoukankan      html  css  js  c++  java
  • 字符串转成时间戳

    强烈推荐:

    1、日期字串转为时间戳int:https://www.cnblogs.com/andy9468/p/12627534.html

    2、时间戳转为日期字串:https://www.cnblogs.com/andy9468/p/12627597.html

    3、比较2个时刻日期字串的时间差:https://www.cnblogs.com/andy9468/p/12627663.html

    4、比较2个时刻日期字串的时间差:距离现在的时间距离(不同时间格式)https://www.cnblogs.com/andy9468/p/12627927.html

    5、python获取一年所有的日期: https://www.cnblogs.com/andy9468/p/10710142.html

    =====================================================================

    (一)通用:time包

    1、日期字符串 => 时间戳int

    import time
    
    # 将时间字符串转为时间戳int
    dt = "2016-05-05 20:28:54"
    # 转换成时间数组
    timeArray = time.strptime(dt, "%Y-%m-%d %H:%M:%S")
    # 转换成时间戳
    timestamp = time.mktime(timeArray)
    
    print(timeArray)
    print("时间戳-timestamp: %s" % timestamp)
    

      

    封装好的函数1:日期 转为 时间戳。单位s,秒。

    def datestr2timeint(date_str='2016-05-05 20:28:54', format='%Y-%m-%d %H:%M:%S'):
        '''
        日期字符串 转为 时间戳。精确到s,单位秒。
        输入举例说明:
        ('2016-05-05 20:28:54')
        ('2016-05-05 20:28:54','%Y-%m-%d %H:%M:%S')
        ('20160505 20:28:54','%Y%m%d %H:%M:%S')
        ('20160505 20_28_54','%Y%m%d %H_%M_%S')
        ('20160505','%Y%m%d')
        :param date_str:日期字符串
        :param format:输入日期字串的日期格式、样式
        :return:转换为int的时间戳
        '''
        # 将时间字符串转为时间戳int
        dt = date_str
        # 转换成时间数组
        timeArray = time.strptime(dt, format)
        # 转换成时间戳
        timestamp = int(time.mktime(timeArray))
    
        return timestamp
    

      

    2、时间戳 => 日期字符串

    (1)精确到秒s

    import time
    
    # 将时间戳int转为时间字符串
    timestamp = 1462451334
    # 转换成localtime
    time_local = time.localtime(timestamp)
    # 转换成新的时间格式(2016-05-05 20:28:54)
    dt = time.strftime("%Y-%m-%d %H:%M:%S", time_local)
    print(dt)
    print("日期字符-dt: %s" % dt)
    

     封装好的函数2.1:时间戳 转为 日期字符串。单位s,秒。

    def timestamp2date(timestamp=1565673941, format="%Y-%m-%d %H:%M:%S"):
        '''
        时间戳转为日期字串,单位s,秒
        :param timestamp:时间戳
        :return:日期字串
        输出举例说明:
        (1565673941, "%Y-%m-%d %H:%M:%S")  输出  2019-08-13 13:25:41
        (1565673941, "%Y-%m-%d")  输出  2019-08-13
        (1565673941, "%Y%m%d")  输出  20190813
        '''
        local_time = time.localtime(timestamp)
        data_head = time.strftime(format, local_time)
    
        return data_head
    

      

    (2)精确到毫秒ms 

    import time
    
    ct = time.time()
    # ct = 1536994867.9991837
    print(ct)
    print(int(ct))
    local_time = time.localtime(ct)
    data_head = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
    data_secs = (ct - int(ct)) * 1000
    dt_ms = "%s.%03d" % (data_head, data_secs)
    print(dt_ms)
    

      封装好的函数2.2:时间戳 转为 日期字串。单位ms,毫秒。

    def timestamp2datems(timestamp):
        '''
        时间戳转为日期字串,精确到ms。单位s
        :param timestamp:时间戳
        :return:日期字串
        '''
        local_time = time.localtime(timestamp)
        data_head = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
        data_secs = (timestamp - int(timestamp)) * 1000
        dt_ms = "%s.%03d" % (data_head, data_secs)
        # print(dt_ms)
        return dt_ms
    

      

    3、获取当前时间的时间戳

    time.time()
    

      

     (二)其他:datetime包

    1. 日期输出格式化 datetime => string

    import datetime
    now = datetime.datetime.now()
    now.strftime('%Y-%m-%d %H:%M:%S')

    strftime是datetime类的实例方法(即为实例方法)。

    2. 日期输出格式化 string => datetime

    import datetime
    t_str = '2015-04-07 19:11:21'
    d = datetime.datetime.strptime(t_str, '%Y-%m-%d %H:%M:%S')
    

     strptime是datetime类的静态方法。

    3.任意格式时间字符串转成时间戳

    import datetime
    GMT_FORMAT = '%a, %d %b %Y %H:%M:%S GMT'
    TIME = 'Thu, 19 Feb 2009 16:00:07 GMT'
    timestamp = datetime.datetime.strptime(TIME, GMT_FORMAT)
    print(timestamp)
    

      

    (三)日期字串转换时间戳,日期字串秒数差值

    import time
    
    
    def datestr2timeint(date_str='2016-05-05 20:28:54', format='%Y-%m-%d %H:%M:%S'):
        '''
        日期字符串 转为 时间戳。精确到s,单位秒。
        输入举例说明:
        ('2016-05-05 20:28:54')
        ('2016-05-05 20:28:54','%Y-%m-%d %H:%M:%S')
        ('20160505 20:28:54','%Y%m%d %H:%M:%S')
        ('20160505 20_28_54','%Y%m%d %H_%M_%S')
        ('20160505','%Y%m%d')
        :param date_str:日期字符串
        :param format:输入日期字串的日期格式、样式
        :return:转换为int的时间戳
        '''
        # 将时间字符串转为时间戳int
        dt = date_str
        # 转换成时间数组
        timeArray = time.strptime(dt, format)
        # 转换成时间戳
        timestamp = int(time.mktime(timeArray))
    
        return timestamp
    
    
    def time_str_minus_seconds(old_date, now_date):
        '''
        :param old_date: 过去日期字串
        :param now_date: 现在日期字串
        :return: 时间差值,秒
        '''
        stamp_ago = datestr2timeint(old_date)
        stamp_now = datestr2timeint(now_date)
        minus_seconds = stamp_now - stamp_ago
        # 返回差的秒数
        return minus_seconds
    
    
    if __name__ == '__main__':
        time_str1 = "2019-08-12 13:25:41"
        time_str2 = "2019-08-13 13:25:41"
        print(datestr2timeint(time_str1))
        print(datestr2timeint(time_str2))
        print(time_str_minus_seconds(time_str1, time_str2))
    

      

  • 相关阅读:
    宁要捧杀,不许真言?
    (已加马赛克)10 行代码判定色*情*图片——Python 也可以系列之二
    推荐几个好玩又有难度的编程网站
    自己动手写算法.Sort.QuickSort
    自己动手写算法.Sort.Bubble
    [Python]五分钟理解元类(Metaclasses)
    [招聘]我司求 python 或 flex 程序员各一名
    Debian的软件包管理工具命令不完全列表
    EdtiPlus最好用的文本编辑器+使用技巧集萃
    为什么美国Microsoft盗版少?
  • 原文地址:https://www.cnblogs.com/andy9468/p/7992261.html
Copyright © 2011-2022 走看看