将异常/自定义时间格式转换为datetime对象

阿纳斯塔西娅·克拉克(Anastasia Clark)

我的数据集中有异常的日期时间格式,我需要将其转换为可用的日期时间对象。

一个例子看起来像:'1/3/2018 1:29:35 PM(UTC + 0)'

我试图用解析它:

from dateutil.parser import parse
parse('1/3/2018 1:29:35 PM(UTC+0)')

但无法识别格式。

我当前的解决方法是使用正则表达式将datetime列(数据在pandas数据框中)解析为两列,如下所示:

数据框

然后根据“ utc”列的值,应用自定义convert_to_eastern函数。

我想知道是否有更简单的方法可以使用datetime.datetime.strptime()完成它?

以下操作无效:

import datetime as dt

my_time='1/3/2018 1:29:35 PM(UTC+0)'
dt.datetime.strptime(my_time, '%m/%d/%Y %I:%M:%S %p(%z)')

另外:这不是问题:“如何将UTC时区转换为本地时区”我的数据集包含带有UTC的行以及东部时区的行。我的问题是格式不是ISO格式,而是一些人类可读的自定义格式。

斯托夫

问题:使用datetime.datetime.strptime()轻松完成此任务的方法

将日期字符串拆分为多个部分:utc:[('1/3/2018 1:29:35 PM', '(UTC+0)', 'UTC', '+', '0')]
重建日期字符串,将hour填充部分固定0为2位。
我想,有没有minutesUTC部分,因此默认00

如果日期字符串的UTC位数超过2位,则返回未更改的日期字符串。

注意strptime格式必须为%Z%z
文档:strftime和strptime行为

from datetime import datetime
import re

def fix_UTC(s):
    utc = re.findall(r'(.+?)(\((\w{3})(\+|\-)(\d{1,2})\))', s)
    if utc:
        utc = utc[0]
        return '{}({}{}{})'.format(utc[0], utc[2], utc[3], '{:02}00'.format(int(utc[4])))
    else:
        return s

my_time = fix_UTC('1/3/2018 1:29:35 PM(UTC+0)')
date = datetime.strptime(my_time, '%m/%d/%Y %I:%M:%S %p(%Z%z)')
print("{} {}".format(date, date.tzinfo))

输出

2018-01-03 13:29:35+01:00 UTC

使用Python测试:3.4.2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将日期时间转换为自定义格式

在bigquery中将DATETIME格式转换为自定义格式

将dmesg时间戳转换为自定义日期格式

Pyspark SQL:将字符串转换为时间戳自定义格式

将自定义/自定义日期时间格式转换为日期时间 SQL Server

使用自定义格式将 CSV 转换为 JSON

将数组转换为自定义格式

将字典数组转换为自定义对象swift

c# - 在将字符串转换为dateTime时如何为字符串分配自定义时间

如何将自定义日期时间格式转换为时间戳?

SQL自定义日期时间格式转换为日期时间

Java将字符串转换为具有自定义格式的java.util.Date对象

在Pandas中将自定义对象转换为标准日期时间对象

将自定义时间戳转换为其他格式

在Python中将自定义字符串格式的时间戳列转换为秒

尝试将自定义对象转换为json时的Jersey异常

将时间从数据库转换为自定义时间失败

使用mySQL将Unix时间戳转换为自定义人类可读时间

使用自定义格式将对象转换为字符串

自定义格式DateTime到时间戳

如何将 JSON 对象转换为自定义 C# 类型对象?

如何将JSON对象转换为自定义C#对象?

Unity C#以所需的日期时间格式将日期字符串转换为datetime对象

将丑陋的字符串(自定义非json格式)转换为字典

在Ruby on Rails中以自定义格式将哈希转换为csv

如何将JSON字符串日期转换为自定义格式日期?

如何将日期字符串转换为自定义日期格式?

将字符串转换为自定义日期格式-C#Razor

使用自定义格式将 JSONArray 转换为字符串数组