Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.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 如何将日期从20年5月26日03.43.48.861000000改为';yyyy-mm-dd hh:mm:ss';?_Python_Datetime - Fatal编程技术网

Python 如何将日期从20年5月26日03.43.48.861000000改为';yyyy-mm-dd hh:mm:ss';?

Python 如何将日期从20年5月26日03.43.48.861000000改为';yyyy-mm-dd hh:mm:ss';?,python,datetime,Python,Datetime,如何使用Python中的datetime将'26-MAY-20 03.43.48.861000000'转换为'yyyy-mm-dd hh:mm:ss'?如此宏大,目标是从第一个字符串创建一个日期对象,然后将日期格式化为第二个字符串 将是你在这里最好的朋友,还有 通过引用库的,我们可以组合第一个字符串的格式 从日期时间导入日期时间 #我不知道为什么您的日期时间不符合1989年的C标准,但我只是将其截断 may_26=datetime.strTime('20年5月26日03.43.48.861000

如何使用Python中的
datetime
'26-MAY-20 03.43.48.861000000'
转换为
'yyyy-mm-dd hh:mm:ss'

如此宏大,目标是从第一个字符串创建一个日期对象,然后将日期格式化为第二个字符串

将是你在这里最好的朋友,还有

通过引用库的,我们可以组合第一个字符串的格式

从日期时间导入日期时间
#我不知道为什么您的日期时间不符合1989年的C标准,但我只是将其截断
may_26=datetime.strTime('20年5月26日03.43.48.861000000'[:-3],%d-%b-%y%H.%M.%S.%f”)
output=datetime.strftime(可能是“%Y-%m-%d%H:%m:%S”)

我在格式化方面为您做了一些假设,比如假设您的datetime是24小时格式,等等,所以一定要自己检查一下。

pandas。to_datetime
也会解析纳秒(我已经修改了时间字符串,使其具有一些…):


我的建议是使用正则表达式提取原始日期的位(例如,“26”、“5”、“20”等),将这些位映射到正则化形式(例如“MAY”-->“05”、“20”-->“2020”),将正则化的内容以ISO 8601格式粘贴在一起,然后使用内置的日期/时间库之一解析。我猜“861000000”代表纳秒?我不知道内置的日期分析器是否会识别出这一点。无法识别的一秒分数可能会被忽略,或者它们可能会导致错误,我不知道,在这种情况下,您必须在粘贴之前切掉过多的数字。@RobertDodier:numpy的可以保存纳秒;但我认为对于大多数日期时间处理应用程序来说,它们是不相关的,因为精度最多在微秒范围内。对于这里的问题,简单地将字符串截断为微秒,然后直接使用
strtime
似乎更适合我。@MrFuppes是的,可能纳秒是不相关的,但也可能不是。由于不知道这些数据的来源或目的地,我喜欢尝试保存所有信息,以防在以后的阶段变得相关。不管怎么说,我提到的关于字符串记忆的业务可能是不必要的复杂性;更可行的方法是使用strtime或pandas.to_datetime,如下所述。
import pandas as pd
t = pd.to_datetime('26-MAY-20 03.43.48.861000100', format="%d-%b-%y %H.%M.%S.%f")

t
Out[41]: Timestamp('2020-05-26 03:43:48.861000100')

t.microsecond
Out[42]: 861000

t.nanosecond
Out[43]: 100