我真的希望你能帮助我.我有一个python程序输出的日期,我需要能够在另一个程序中访问.
问题是我不知道这个日期是如何格式化的:
Format Date
129893779638930000 - 2012-08-13 17:32:43
Run Code Online (Sandbox Code Playgroud)
这是日期和时间,我真的希望有人能够识别它的格式,因为我不太了解python.如果您可以告诉我如何将其转换为unix时间戳,则可获得奖励积分.
编辑:执行此操作的程序是Foobar2000(音乐程序的扩展)的组件.该组件如下所示:http://www.foobar2000.org/components/view/foo_playcount,它是XML导出功能,可生成奇数日期/时间戳.
129893678626216000在1e-8秒(几十纳秒)内看起来像unix时间戳:1,298,936,786.262,160,00.它代表:
>>> from datetime import datetime
>>> datetime.utcfromtimestamp(129893678626216000/1e8)
datetime.datetime(2011, 2, 28, 23, 46, 26, 262160)
Run Code Online (Sandbox Code Playgroud)
编辑:但是您的信息"文件时间是一个64位值,表示自1月1日凌晨12:00开始经过的100纳秒间隔的数量,1601协调世界时(UTC)"告诉我使用:
>>> from datetime import datetime, timedelta
>>> datetime(1601, 1, 1, 0, 0, 0) + timedelta(seconds = 129893678626216000/1e7)
datetime.datetime(2012, 8, 13, 21, 44, 22, 621599)
Run Code Online (Sandbox Code Playgroud)
你得到的正是你所期待的.
您也可以将其直接转换为unix时间戳(自1970-01-01 00:00:00 UTC以来的秒数):
>>> 129893678626216000 / 1e7 - 11644473600
1344894262.6215992
Run Code Online (Sandbox Code Playgroud)