Leo Wang's Notepad

在Python中将datetime字符串转换为utc timestamp

在python中有很多方法将datetime的字符串转换为 utc timestamp

网上找了好多,看起来都纷繁复杂。本文就想简单的做好一件事,就是将datetime的字符串转换为utc timestamp。

理解这个转换的关键,在于理解python中所有的日期字符串都被python解读为local time。

也就是说,同样是’2015/10/27 00:00:00’这个字符串,虽然身处东京的我和身在伦敦的你看到的是同一个字符串,但他们本身被python解读为两个不同地方的日期和时间。

如果想让python不去理会时差,而只想要utc格式的时间戳的话,用calendar.timegm()函数即可实现。

现举例如下:

# -*- coding: utf-8 -*-
__author__ = 'leo'

from datetime import datetime
import calendar
import time


def local_to_utc(date_value):
    utc_timetuple = datetime.strptime(date_value, '%Y/%m/%d %H:%M:%S').timetuple()
    ts = calendar.timegm(utc_timetuple)
    return ts * 1000


def local_timestamp(date_value):
    utc_timetuple = datetime.strptime(date_value, '%Y/%m/%d %H:%M:%S').timetuple()
    ts = time.mktime(utc_timetuple)
    return int(ts) * 1000


date_str = '2015/10/27 00:00:00'
print local_to_utc(date_str)
print local_timestamp(date_str)

最后打印的结果,可以看到两个函数输出的时间戳是不一样的。(P.S.笔者在东九区)

1445904000000
1445871600000

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注