python - 在Python中转换 "yyyy-MM-dd' T'HH :mm:ss. SSSZ"格式的时间戳

标签 python timestamp

我有一个日志文件,其时间戳类似于“2012-05-12T13:04:35.347-07:00”。我想将每个时间戳转换为一个数字,以便我根据时间按升序对它们进行排序。

我如何在 Python 中执行此操作?在 Java 中,我发现我可以使用 SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ") 为这种格式转换时间戳,但是对于 Python,我找不到任何东西.

最佳答案

由于 py2.x 对 %z 指令有问题,你必须这样做:

from datetime import timedelta,datetime
strs = "2012-05-12T13:04:35.347-07:00"
#replace the last ':' with an empty string, as python UTC offset format is +HHMM
strs = strs[::-1].replace(':','',1)[::-1]

由于 datetime.striptime 不支持 %z(UTC 偏移量)(至少在 py2.x 中不支持),因此您需要解决方法:

#Snippet taken from http://stackoverflow.com/a/526450/846892
try:
    offset = int(strs[-5:])
except:
    print "Error"

delta = timedelta(hours = offset / 100)

现在将格式应用于:'2012-05-12T13:04:35.347'

time = datetime.strptime(strs[:-5], "%Y-%m-%dT%H:%M:%S.%f")
time -= delta                #reduce the delta from this time object
print time
#2012-05-12 20:04:35.347000

关于python - 在Python中转换 "yyyy-MM-dd' T'HH :mm:ss. SSSZ"格式的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17494250/

相关文章:

shell - 如何从 Mongo ObjectID 中提取创建日期

python - 如何在 Python 中转换像 u'\\u4f60\\u4f6 0' to u'\u4f60\u4f60' 这样的 unicode 字符串?

python - Python 文档中的条件表达式

python - 嵌套列表,检查一个列表是否与其他列表有共同元素,如果有则加入

nhibernate - 在 NHibernate QueryOver 语法中使用 current_timestamp

mysql - 使用 unix 时间戳从 mysql 数据库获取最近 30 分钟的记录

postgresql - 手动将时间戳的PostgreSQL二进制格式转换为整数

python - 如何将 float 限制在限制以下?

python - 如何使用 python 从头开始​​编写 Midi 文件

java - JDBC 将日期转换为 UTC