datetime.datetime(2022, 7, 24, 6, 44, 0, 197666) 请问最后一个数字是什么意思?
Topic source上面的代码对时区的后半部分判断有误更正为
# -*- coding:utf-8 -*-
import re
from datetime import datetime, timezone, timedelta
#目标:将带时区的日期字符串转化为时间戳
def to_timestamp(dt_str, tz_str):
#第一步,将日期字符串转化为日期对象
dt = datetime.strptime(dt_str,'%Y-%m-%d %H:%M:%S')
#第二步,将时区字符串转化为数字对象
re_utc = re.match(r'\w+(.\d+):(\d+)',tz_str)
utc_h = (re_utc.group(1))
utc_m = int(re_utc.group(2))/60
if utc_h[0] == '+':
utc = int(utc_h) + utc_m
else:
utc = int(utc_h) - utc_m
print(utc)
#第三步,将时区属性输入日期对象
tz_utc = timezone(timedelta(hours=utc))
dt = dt.replace(tzinfo=tz_utc)
#第四步,返回时间戳
print(dt.timestamp())
return dt.timestamp()
# 测试:
t1 = to_timestamp('2015-4-19 12:00:00', 'UTC+08:00')
assert t1 == 1429416000.0
t2 = to_timestamp('2015-4-19 00:30:00', 'UTC-03:30')
assert t2 == 1429416000.0
print('ok')
另外通过对象实例化方式定义的datetime对象默认时区为系统时区
即datetime(2015,8,30,14,25)这个对象的默认时区是东八区,转化为的时间戳也是东八区条件下转化的时间戳
- 1
alienation