将Python DateTime字符串转换为整数毫秒
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了将Python DateTime字符串转换为整数毫秒,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1811字,纯文字阅读大概需要3分钟。
内容图文
![将Python DateTime字符串转换为整数毫秒](/upload/InfoBanner/zyjiaocheng/695/dc13add2f4f1437f85979e590ddcb64a.jpg)
我想将UTC TimeDate标记字符串转换为毫秒的整数值(可能需要为64位数量),以便在存储在mySQL数据库列中时占用较少的空间.这个UTC字符串是从另一个库中生成的,我将其存储为一种针对每个用户的GUID.
可以将datetime或dateutil转换为单个整数值(例如“自纪元以来的毫秒数”)吗?还是我需要自己做?
使用这种方法进行解析:
myDateTime = dateutil.parser.parse("2015-06-27T02:10:05.653000Z")
print("Parsed datetime String is {0}, ordinal value is {1}".format(myDateTime, myDateTime.toordinal()))
给出输出:
Parsed datetime String is 2015-06-27 02:10:05.652999+00:00, ordinal value is 735776
…仅给出日期的序数值.此外,如果我的时间是653毫秒的整数,那么我希望该解析对象知道它具有653毫秒,而不是652999.
解决方法:
[根据评论中的建议进行编辑]
使用Ben Alpert’s回答How can I convert a datetime object to milliseconds since epoch (unix time) in Python,我们可以执行以下操作:
from datetime import datetime
def unix_time(dt):
epoch = datetime.utcfromtimestamp(0)
delta = dt - epoch
return delta.total_seconds()
def unix_time_millis(dt):
return int(unix_time(dt) * 1000)
a = datetime.strptime("2015-06-27T02:10:05.653000Z", "%Y-%m-%dT%H:%M:%S.%fZ")
unix_time_millis(a)
收益:
1435371005653
等效于:2015年6月27日,星期六,格林尼治标准时间(如预期)
我们还可以使用datetime的.strftime(‘%s’)来获取Unix时间,甚至可以使用以下命令获取毫秒(但不建议这样做):
from decimal import Decimal
int(Decimal(datetime.strptime("2015-06-27T02:10:05.653000Z", "%Y-%m-%dT%H:%M:%S.%fZ").strftime('%s.%f'))*1000)
收益:
1435396205653
相当于:2015年6月27日,星期六,格林尼治标准时间(在我位于圣地亚哥的Mac上;请注意:这比我们预期的要晚7个小时).
J.F. Sebastian在上面的链接的注释中以及在有关.strftime(‘%s’)行为的this回答中描述了错误的原因.塞巴斯蒂安·J.F.塞巴斯蒂安指出:“它不受支持,它不是可移植的,它可能会为一个已知的日期时间对象默默地产生错误的结果,如果输入使用UTC(如在问题中),但本地时区不是UTC,它将失败”
内容总结
以上是互联网集市为您收集整理的将Python DateTime字符串转换为整数毫秒全部内容,希望文章能够帮你解决将Python DateTime字符串转换为整数毫秒所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。