Python时间戳与时间的相互转换
当使用Python进行数据处理时,在某些情况下可能需要将时间和其对应的 timestamp 之间互相转换;或者反之亦然地将一个 timestamp 转换为实际的时间数值。这里提供了一种方法来实现这两种操作之间的互相转换;通常,在解决 Python 时间相关问题时会采用 time 和 datetime 两个标准库作为主要工具。
时间戳与时间的相互转换
-
-
-
- 时间戳转换成时间
-
-
- strftime()方法语法:
- strptime()方法语法:
-
-
将时间字段转为时间段戳表示。
-
将datetime对象转为字符串形式。
-
将字符串解析为datetime对象。
-
补充说明如何处理不同类型的时区时间。
-
将日期字段转为时间段戳表示。
-
补充说明如何处理月份名称(如March)。
-
补充说明如何处理年份部分(如"Mar")。
-
补充说明如何处理小时部分(如"PO")。
-
补充说明如何处理分钟部分(如"PO")。
-
将日期字符串解析为datetime对象的具体操作步骤。
-
补充说明如何获取前一天的时间的具体操作步骤。
* 时间字段说明
时间戳转换成时间
该Python built-in函数time.strftime()接受一个时间元组,并生成一个用可读字符串表示的当地时间;其输出格式由参数format指定。
strftime()方法语法:
time.strftime(format[, t]) #format -- 格式字符串。t -- 可选的参数t是一个struct_time对象。
代码解释
Python time strptime() 函数遵循指定格式将一个时间字符串解析为时间元组。
strptime()方法语法:
time.strptime(string[, format]) #string -- 时间字符串。 format -- 格式化字符串。
代码解释
import time
date = '03/20/2020' #"2020年3月20日"
date1=time.strptime(date,'%m/%d/%Y') #%Y年%m月%d日
d2 = time.strftime("%Y-%m-%d",date1)
print(date1)
print(d2)
代码解释
时间转换成时间戳
import datetime
import time
time1 = datetime.datetime(2020,3,17,6.8,8,8)
time= time.mktime(time1.timeuple())
代码解释
datetime对象转换成字符串
-利用str或者strftime方法可以将datetime对象转换成字符串:
from datetime import datetime # 导入datetime模块
创建一个特定日期的时间对象 stamp = datetime(2018, 12, 6)
并将其转换为字符串格式 str(stamp) # 转换 #结果显示:‘2018-12-06 00:00:00’
-使用strftime函数,需要传入一个格式化字符串:
stamp.strftime(’%Y-%m-%d’) # 显示结果为:‘2018-12-06’
strftime稍微有点繁琐, 但用途广泛, 例如可以输出当前日期对应的星期几:
stamp.strftime("%w") # 结果显示:‘6’,表示当前日期为星期六
字符串转换成datetime对象
datetime.strptime可以用这些格式化编码将字符串转换成日期:
value = ‘2018-12-06’
datetime.strptime(value, ‘%Y/%m/%d’)
结果显示:
datetime.datetime(2018, 12, 6, 0, 0)
不同类型时间的转换
1.date: March 13, 2020
char ='\n Original release date: March 13, 2020\n'
com = re.compile(r':(\s*[\S]+\s\d+,\s\d+)') #( *[\s]+)
char3 = re.findall(com, char)
time2 = char3.replace(" |,", "")
print
# print()(time3)
time_format2 = time.time.strptime(time2, '%B%d%Y')
代码解释
2.Wed, 25 Mar 2020 08:00:28 +0000
date1 = 'Wed, 25 Mar 2020 08:00:28 +0000'
date2 = time.strptime(date1,"%a, %d %b %Y %H:%M:%S +0000")
date3 = time.strftime("%Y-%m-%d",date2)
代码解释
3.时间:2019-05-15\xa0\xa0\xa0\xa0
char = "时间:2019-05-15\xa0\xa0\xa0\xa0"
# com = re.compile(r'\d{4}-\d{2}-\d{2}') # date1 = re.compile(r'd{4}[-|/|.]\d{1,2}[-|/|.]\d{1,2}',date) #2020-2-23或者2020/2/23
# char3 = re.findall(com, char)
代码解释
4.2020-03-20 19:50:38
date3 ='2020-03-20 19:50:38'
date4 = time.strptime(date3,"%Y-%m-%d %H:%M:%S")
date5 = time.strftime("%Y-%m-%d",date4)
代码解释
5.2020-03-11T17:15:07+00:00
format1="%Y-%m-%dT%H:%M:%S+00:00"
format2="%Y-%m-%d %H:%M:%S"
t1 = '2020-03-11T17:15:07+00:00'
t = time.strptime(t1, format1)
t2 = time.strftime(format2, t)
print(t2)
代码解释
6.Mar 14, 2020
time1 ='Mar 14, 2020'
time2 = time1.replace(" ", "")
time3 = time2.replace(",", "")
# print()(time3)
time_format2 = time.strptime(time3, '%b%d%Y')
item['time'] = time.strftime("%Y-%m-%d",time_format2)
代码解释
7.Thursday, March 26, 2020
date = 'Thursday, March 26, 2020'
date2 = time.strptime(date, "%A, %B %d, %Y")
date3 = time.strftime("%Y-%m-%d", date2)
print(date3)
代码解释
8.05月18, 2020
date='05月18, 2020'
time_format2 = time.strptime(date, '%m月%d, %Y')
date2 = time.strftime("%Y-%m-%d", time_format2)
代码解释
2020-03-07T08:12:44.274Z
import time
joined = '2020-03-07T08:12:44.274Z'
data = time.strptime(joined,'%Y-%m-%dT%H:%M:%S.%fZ')
join_time = time.strftime("%Y-%m-%d",data)
print(join_time)
代码解释
获取前一天时间
time1= ‘Mar 14, 2020 12:00:00 AM’
time2 = datetime.datetime.strptime(time1, '%b %d, %Y %H:%M:%S AM')
time3 = time2 - datetime.timedelta(days=1) #获取当前时间的前一天时间
timestamp = time3.strftime("%Y-%m-%d")
代码解释
时间字段说明
python中时间日期格式化符号:
| 符号 | 含义 |
|---|---|
| %y | 两位数的年份表示(00-99) |
| %Y | 四位数的年份表示(000-9999) |
| %m | 月份(01-12) |
| %d | 月内中的一天(0-31) |
| %H | 24小时制小时数(0-23) |
| %I | 2小时制小时数(01-12) |
| %M | 分钟数(00=59) |
| %S | 秒(00-59) |
| %a | 本地简化星期名称 |
| %A | 本地完整星期名称 |
| %b | 本地简化的月份名称 |
| %B | 本地完整的月份名称 |
| %c | 本地相应的日期表示和时间表示 |
| %j | 年内的一天(001-366) |
| %p | 本地A.M.或P.M.的等价符 |
| %U | 一年中的星期数(00-53)星期天为星期的开始 |
| %w | 星期(0-6),星期天为星期的开始 |
| %W | 一年中的星期数(00-53)星期一为星期的开始 |
| %x | 本地相应的日期表示 |
| %X | 本地相应的时间表示 |
| %Z | 当前时区的名称 |
| %% | %号本身 |
