Python3以优雅的方式将字符串转换为日期和时间

时间:2017-12-01 16:21:28

标签: python python-3.x python-3.6

我试图找到一种翻译这个字符串的好方法:

'20171127124906.359599 + 000' - 进入日期/时间;

我目前正试图通过将字符串切割成不同的元素来实现这一目标,但代码开始看起来有点难看。

基本上,我的目标是找到一种最恐怖或优雅的方式来计算机器UpTime;

我从WMI,Win32_OperatingSystem类中获取此字符串;我想用两个值来计算机器UpTime;

LastBootUpTime = '20171127124906.359599+000'
LocalDateTime = '20171201151404.691000+000'

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

正常UTC偏移量通常为四位+HHMM。如果您可以将时间戳转换为该时间戳,则可以使用

form datetime import datetime

t = '20171127124906.359599+000'
# I think that your inputs are of the form HHM (So 11:30 would be 113).
# This rounds that out by adding a zero at the end
t = t + '0'

datetime.strptime(t, '%Y%m%d%H%M%S.%f%z')

给我们

datetime.datetime(2017, 11, 27, 12, 49, 6, 359599, tzinfo=datetime.timezone.utc)

如果要更改该格式字符串,则其文档为here