Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python解析硬件时钟输出_Python_Python Datetime - Fatal编程技术网

用Python解析硬件时钟输出

用Python解析硬件时钟输出,python,python-datetime,Python,Python Datetime,产量 /sbin/hwclock--show--utc 看起来像 2017-06-01 16:04:47.029482+1:00 如何在Python中将此字符串解析为datetime对象?您可以使用将日期字符串和格式作为输入并返回datetime对象方法将字符串解析为datetime对象。按空格拆分的第一个值是日期,如2017-06-01 d=拆分日期(“”[0] 按点分割以获得时间 t=data.split(“”[1]。split(“”[0]您可以使用第三方库python dateutil(p

产量

/sbin/hwclock--show--utc

看起来像

2017-06-01 16:04:47.029482+1:00


如何在Python中将此字符串解析为datetime对象?

您可以使用将日期字符串和格式作为输入并返回datetime对象方法将字符串解析为datetime对象。

按空格拆分的第一个值是日期,如2017-06-01

d=拆分日期(“”[0]

按点分割以获得时间
t=data.split(“”[1]。split(“”[0]

您可以使用第三方库
python dateutil
pip安装python dateutil
):

如果您不想使用第三方库:

import datetime
import re


def parse_iso_timestamp(clock_string):
    # Handle offset < 10
    clock_string = re.sub(r'\+(\d):', r'+0\1', clock_string)

    # Handle offset > 10
    clock_string = re.sub(r'\+(\d\d):', r'+\1', clock_string)

    # Parse
    dt = datetime.datetime.strptime(clock_string, '%Y-%m-%d %H:%M:%S.%f%z')

    return dt


print(parse_iso_timestamp('2017-06-01 16:04:47.029482+1:00').__repr__())
print(parse_iso_timestamp('2017-06-01 16:04:47.029482+10:00').__repr__())
使用just datetime:

import datetime

s = "2017-06-01 16:04:47.029482+1:00"
try:
    stamp, zone = s.rsplit('+', 1)
    sign = '+'
except ValueError:
    stamp, zone = s.rsplit('-', 1)
    sign = '-'
zone = int(zone.replace(':', ''))
new_s = '%s%s%04d' % (stamp, sign, zone)

print(new_s)
dt = datetime.datetime.strptime(new_s, "%Y-%m-%d %H:%M:%S.%f%z")
print(dt.__repr__())

我不怕依赖。如果某个库使我的生活更轻松,我将扩展setup.py:-)中的install_requires列表,谢谢您的回答。
datetime.datetime(2017, 6, 1, 16, 4, 47, 29482, tzinfo=datetime.timezone(datetime.timedelta(0, 3600)))
datetime.datetime(2017, 6, 1, 16, 4, 47, 29482, tzinfo=datetime.timezone(datetime.timedelta(0, 36000)))
import datetime

s = "2017-06-01 16:04:47.029482+1:00"
try:
    stamp, zone = s.rsplit('+', 1)
    sign = '+'
except ValueError:
    stamp, zone = s.rsplit('-', 1)
    sign = '-'
zone = int(zone.replace(':', ''))
new_s = '%s%s%04d' % (stamp, sign, zone)

print(new_s)
dt = datetime.datetime.strptime(new_s, "%Y-%m-%d %H:%M:%S.%f%z")
print(dt.__repr__())