将带有亚洲字符的 UTF-16LE 字符串转换为 DateTime
Converting UTF-16LE string with asian characters to DateTime
我正在解析由 PowerShell 生成的大量 csv 文件。
大部分如下所示:
".txt"@"12/01/2017 4:47:55 PM"@"12/01/2017 4:47:55 PM"@"12/01/2017
4:47:55 PM"@"0"
但有些看起来像这样:
.pptx@"2017-02-20 오후 4:30:39"@"2017-02-20 오후 4:30:39"@"2015-11-12 오후
7:32:11"@"13387528"
我想从时间戳中解析 DateTime 对象,但失败了:
pd.to_datetime ("2017-02-20 PM 4:30:39", format='%Y-%m-%d %p %I:%M:%S')
Timestamp('2017-02-20 16:30:39')
pd.to_datetime ("2017-02-20 오후 4:30:39", format='%Y-%m-%d %p %I:%M:%S')
ValueError: time data '2017-02-20 오후 4:30:39' does not match format '%Y-%m-%d %p %I:%M:%S' (match)
我可以通过以十六进制打开文件并将相应的'\uc624\ud6c4'替换为'AM/PM'来解决这个问题。
我是否缺少解决此问题的更方便的方法?
strftime
没有这方面的功能,但我以前用过的一个技巧是删除字符串中可能存在外来字符的位:
pd.to_datetime(" ".join(np.array("2017-02-20 오후 4:30:39".split(" "))[[0, -1]]),
format='%Y-%m-%d %I:%M:%S')
我不会称之为 "elegant"。但它有效。
我正在解析由 PowerShell 生成的大量 csv 文件。
大部分如下所示:
".txt"@"12/01/2017 4:47:55 PM"@"12/01/2017 4:47:55 PM"@"12/01/2017 4:47:55 PM"@"0"
但有些看起来像这样:
.pptx@"2017-02-20 오후 4:30:39"@"2017-02-20 오후 4:30:39"@"2015-11-12 오후 7:32:11"@"13387528"
我想从时间戳中解析 DateTime 对象,但失败了:
pd.to_datetime ("2017-02-20 PM 4:30:39", format='%Y-%m-%d %p %I:%M:%S')
Timestamp('2017-02-20 16:30:39')
pd.to_datetime ("2017-02-20 오후 4:30:39", format='%Y-%m-%d %p %I:%M:%S')
ValueError: time data '2017-02-20 오후 4:30:39' does not match format '%Y-%m-%d %p %I:%M:%S' (match)
我可以通过以十六进制打开文件并将相应的'\uc624\ud6c4'替换为'AM/PM'来解决这个问题。
我是否缺少解决此问题的更方便的方法?
strftime
没有这方面的功能,但我以前用过的一个技巧是删除字符串中可能存在外来字符的位:
pd.to_datetime(" ".join(np.array("2017-02-20 오후 4:30:39".split(" "))[[0, -1]]),
format='%Y-%m-%d %I:%M:%S')
我不会称之为 "elegant"。但它有效。