当前位置:   article > 正文

python 之 时间、日期、时间戳之间的各种转换_python时间类型apply批量转换时间戳

python时间类型apply批量转换时间戳

在将数据存储于MySQL、Oracle等时,对时间的操作会比较频繁,比如,数据第一次保存于数据库的时间(create_time),数据的更新时间(update_time),查询某个时间等等。在对时间进行操作时,往往会涉及到时间、日期、时间戳之间的各种转换,下面简单介绍几个常用的转换方法。

1、用到的模块
用到的模块有两个:time模块和datetime模块

import time,datetime


2、获取不同要求的时间(字符串格式)

  1. from datetime import datetime, timedelta
  2. today = datetime.now()  # 今天
  3. yesterday = today - timedelta(days=1)  # 昨天
  4. last_year_today = datetime(today.year - 1, today.month, today.day)  # 去年今天
  5. if today.month == 1:
  6.     last_month_today = datetime(today.year - 1, 12, today.day, )  # 上月今日
  7. else:
  8.     last_month_today = datetime(today.year, today.month - 1, today.day, )  # 上月今日
  9. print(f'当前时间是:{today}')
  10. print(f'昨天当前时间是:{yesterday}')
  11. print(f'去年今天是:{last_year_today}')
  12. print(f'上月今日是:{last_month_today}')

运行结果:

  1. 当前时间是:2022-03-06 17:18:06.242593
  2. 昨天当前时间是:2022-03-05 17:18:06.242593
  3. 去年今天是:2021-03-06 00:00:00
  4. 上月今日是:2022-02-06 00:00:00

3、str-->时间戳

  1. import time
  2. nowTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
  3. print(f'字符类型的当前时间为:{nowTime}')
  4. # 转为时间数组
  5. nowTimeArray = time.strptime(nowTime, "%Y-%m-%d %H:%M:%S")
  6. print(f'数组类型的当前时间为:{nowTimeArray}')
  7. # 转为秒级时间戳
  8. nowTimeStamp = str(int(time.mktime(nowTimeArray)))
  9. print(f'时间戳类型的当前时间为:{nowTimeStamp}')

运行结果:

  1. 字符类型的当前时间为:2022-03-06 17:31:20
  2. 数组类型的当前时间为:time.struct_time(tm_year=2022, tm_mon=3, tm_mday=6, tm_hour=17, tm_min=31, tm_sec=20, tm_wday=6, tm_yday=65, tm_isdst=-1)
  3. 时间戳类型的当前时间为:1646559080

4、原始时间戳-->秒级、毫秒级、微秒级时间戳

  1. import time
  2. nowTimeStamp = time.time() # 原始时间数据
  3. sNowTimeStamp = int(nowTimeStamp) # 秒级时间戳
  4. msNowTimeStamp = int(round(nowTimeStamp * 1000)) # 毫秒级时间戳
  5. micNowTimeStamp = int(round(nowTimeStamp * 1000000)) # 微秒级时间戳
  6. print(f'原始时间戳为:{nowTimeStamp}')
  7. print(f'秒级时间戳为:{sNowTimeStamp}')
  8. print(f'毫秒级时间戳为:{msNowTimeStamp}')
  9. print(f'微秒级时间戳为:{micNowTimeStamp}')

运行结果:

  1. 原始时间戳为:1646559080.6776936
  2. 秒级时间戳为:1646559080
  3. 毫秒级时间戳为:1646559080678
  4. 微秒级时间戳为:1646559080677694

5、更改str类型日期的显示格式

  1. tss2 = "2022-03-06 23:40:00"
  2. # 将字符串格式的时间转为数组
  3. timeArray = time.strptime(tss2, "%Y-%m-%d %H:%M:%S")
  4. # 转为其它显示格式
  5. otherStyleTime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)
  6. print(otherStyleTime) # 2022/03/06 23:40:00
  7. tss3 = "2022/03/06 23:40:00"
  8. timeArray = time.strptime(tss3, "%Y/%m/%d %H:%M:%S")
  9. # 将字符串格式的时间转为数组
  10. otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
  11. print(otherStyleTime) # 2022-03-06 23:40:00

6、时间戳转换为指定格式的日期

  1. import datetime
  2. import time
  3. # 使用time模块实现
  4. timeStamp = int(time.time()) # 当前时间的秒级时间戳
  5. timeArray = time.localtime(timeStamp)
  6. otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)
  7. print(otherStyleTime) # 2022--03--06 17:37:31
  8. # 使用datetime模块实现
  9. timeStamp = int(time.time()) # 当前时间的秒级时间戳
  10. dateArray = datetime.datetime.fromtimestamp(timeStamp)
  11. otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")
  12. print(otherStyleTime) # 2022--03--06 17:37:31

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/73019
推荐阅读
相关标签
  

闽ICP备14008679号