Discuss / Python / 请问下面这种情况求得的timestamp为什么不正确

请问下面这种情况求得的timestamp为什么不正确

Topic source

lfwan恋歌

#1 Created at ... [Delete] [Delete and Lock User]
#coding:utf-8
import re
from datetime import datetime, timezone, timedelta

def to_timestamp(dt_str, tz_str):
    user_datetime = datetime.strptime(dt_str, "%Y-%m-%d %H:%M:%S")
    print(user_datetime)
    rs = '[0-9]*(?=:)'
#    rs = '+[0-9]*(?=:)|-[0-9]*(?=:)'
    rc = re.compile(rs)
    time_zone = re.search(rc,tz_str).group(0)
    print(time_zone)
    user_datetime = user_datetime.replace(tzinfo=timezone.utc)
    if('+' in tz_str):
        user_datetime=user_datetime.astimezone(timezone(timedelta(hours=int(time_zone))))
    elif('-' in tz_str):
        user_datetime=user_datetime.astimezone(timezone(timedelta(hours=-int(time_zone))))
#    utc_time = user_datetime.timestamp()
    print(user_datetime.utcoffset())
    time_naive = user_datetime.replace(tzinfo=None) - user_datetime.utcoffset()
    timestamp = (time_naive - datetime(1970,1,1)).total_seconds()
    return timestamp
t1 = to_timestamp('2015-6-1 08:10:30', 'UTC+7:00')
print(t1)

我的Python32不能使用datetime.timestamp()的方式求timestamp(),在网上找到一种方式,然而这种方式输出结果不是1433121030.0。请问这是什么原因?


  • 1

Reply