我正在转换一些日期时间,但我遇到了问题。日期时间是
my_time = "2012-03-18 14:50:36.90"
转换此日期时间的代码是
import time
import datetime
import calendar
time_con = datetime.datetime.strptime(my_time,'%Y-%m-%d %H:%M:%S.%f')
final_time = calendar.timegm(time_con.timetuple())
打印时,我得到了
>> print "time_con", time_con
datetime.datetime(2012, 3, 18, 14, 50, 36, 900000)
当我打印final_time时,我得到了
>> print "final_time", final_time
1332082236
我无法获得毫秒,而且我不知道如何正确处理它们,因为我需要在我的约会时间内使用毫秒。我搜索SO但没有任何线索。但是,能帮助会很棒,这将节省我的一天。感谢
答案 0 :(得分:2)
这很容易解决。由于time_con
中没有存储毫秒但是微秒,我们可以time_con.microsecond*1000
来获得毫秒。
import time
import datetime
import calendar
my_time = "2012-03-18 14:50:36.90"
time_con = datetime.datetime.strptime(my_time,'%Y-%m-%d %H:%M:%S.%f')
microsecs = time_con.microsecond
final_time = calendar.timegm(time_con.timetuple())*1000000 + millisecs
# final_time is in microseconds
# To print in seconds
# print(final_time/1000000)
print(final_time)
结果
1332082236900
希望你想要的是什么。希望这有帮助!
答案 1 :(得分:1)
在Python 3中你可以做到
import datetime
my_time = "2012-03-18 14:50:36.90"
time_con = datetime.datetime.strptime(my_time,'%Y-%m-%d %H:%M:%S.%f')
final_time = time_con.replace(tzinfo=datetime.timezone.utc).timestamp()
# 1332082236.9
Here is the link to datetime.datetime.timestamp
's documentation
答案 2 :(得分:0)
请阅读calendar.timegm
calendar.timegm(tuple)
(强调我的):
gmtime()
一个不相关但很方便的函数,它接受时间模块中的
time_t
函数返回的时间元组,并返回相应的 Unix时间戳值,假定1970年的时代,和POSIX编码。
docs 定义为非负整数。好吧,维基百科说它可以是浮点数,但无论如何,UNIX系统通常用C类型{{1}}的变量表示它,这是完全非负的。 整数,因为它表示自UNIX纪元开始以来经过的秒数。
因此,它显然不能代表毫秒,因为它被定义为整数。