如何用 time 模块处理时间数据

time 模块中处理时间数据格式的几种方式

在 time 模块中,时间数据主要有三种格式:时间戳(timeStamp)、时间数组(timeStruct)和时间字符串(timeStr)。形式如下图所示:
在这里插入图片描述
对于这三种格式的数据,时间戳与时间数组之间可以互相转换,时间数组和时间字符串之间可以互相转换,于是以时间数组为媒介,时间戳与时间字符串之间也可以互相转换。下面对这些转换进行具体说明。

1. 基本方法
timeStamp  = time.time()            # 获取当前时间的时间戳
timeStruct = time.localtime()       # 获取当前时间的时间数组
timeStamp = time.mktime(timeStruct)     # 时间数组转为时间戳
timeStruct = time.localtime(timeStamp)  # 时间戳转为时间数组
timeStr = time.asctime(timeStruct)      # 时间数组转为英文格式的时间字符串
timeStr = time.strftime("%Y-%m-%d",timeStruct)    # 时间数组转为其它指定格式的时间字符串  (time from str)
timeStruct = time.strptime(timeStr,"%Y-%m-%d")    # 时间字符串转为时间数组 (str parse to time)

为了方便记忆,strftime()可以理解为 “str from time”,strptime()可以理解为 “str parsed to time”。

2. 常用的时间日期格式化符号
%y   # 两位数的年份表示(00-99)
%Y   # 四位数的年份表示(000-9999)
%m   # 月份(01-12)
%d   # 月内中的一天(0-31)
%H   # 24小时制小时数(0-23)
%I   # 12小时制小时数(01-12) 
%M   # 分钟数(00=59)
%S   # 秒(00-59)
3. 三种格式间的相互转换
import time
# 1. 时间字符串1->时间数组1->时间戳->时间数组2->时间字符串2
timeStr1 = '2018-11-29'                              # 时间字符串1
timeStruct1 = time.strptime(t, "%Y-%m-%d %H:%M:%S")  # 时间数组1,由时间字符串1转换得到
timeStamp = time.mktime(timeStruct1)                 # 时间数组转为时间戳
timeStruct2 = time.localtime(timeStamp)              # 时间数组2,由时间戳转换得到
timeStr2 = time.strftime("%Y/%m/%d",timeStruct2)     # 另一格式的时间字符串,由时间数组2转换得到 

# 2. 时间戳1->时间数组1->时间字符串->时间数组2->时间戳2
timeStamp1 = 1543461759                                   # 时间戳1
timeStruct1 = time.localtime(timeStamp1)                  # 时间数组1,由时间戳转换得到
timeStr = time.strftime("%Y-%m-%d %H:%M:%S", timeStruct1) # 指定格式的时间字符串,由时间数组转换得到
timeStruct2 = time.strptime(timeStr,"%Y-%m-%d")           # 时间数组2,由时间字符串转换得到
timeStamp2 = time.mktime(timeStruct2)                     # 时间戳2,由时间数组转换得到

4. 时间字符串的格式化

在我们的日常工作中经常会遇到时间字符串,这就涉及到时间字符串的格式化问题。下面给出时间字符串 '2018-11-29''2018/11/29' 的转换方法:

import time
timeStr = '2018-11-29'
timeStruct = time.strptime('2018-11-29', "%Y-%m-%d")
timeStr = time.strftime("%Y/%m/%d", timeStruct)

结果为:
在这里插入图片描述
需要注意的是,在timeStruct = time.strptime('2018-11-29', "%Y-%m-%d")这行代码中,参数"%Y-%m-%d"需要根据'2018-11-29'的格式来定,如果时间字符串的格式为'2018/11/29',那么这个参数应该改为"%Y/%m/%d"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值