首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Datetime格式问题

Datetime格式问题
EN

Stack Overflow用户
提问于 2020-12-24 07:09:23
回答 2查看 50关注 0票数 1

所以..。我再一次遇到了datetime格式的问题。这是因为IDK为什么亚马逊的数据库不断地改变日期格式,每次都是一个麻烦。今天,我请求您帮助将此字符串转换为datetime对象。我只是找不到合适的格式。

"ene“和Jan很像,不过是西班牙语。问题是,即使locale.getlocale()被设置为西班牙语,它也不会转换它(但它会转换英语日期字符串)。我还尝试将"ene“替换为"Jan”,但也不起作用。我仍然收到“时间数据'2 Ene.2020 9:54:46‘不匹配格式’%d%b.%Y%H:%M:%S‘”错误。

代码语言:javascript
复制
data={'fecha/hora': {0: '2 ene. 2020 9:54:46',
  1: '2 ene. 2020 10:18:51',
  2: '2 ene. 2020 10:19:18',
  3: '2 ene. 2020 11:58:04',
  4: '2 ene. 2020 15:56:51'},
 'Id. de liquidación': {0: 12493053261,
  1: 12493053261,
  2: 12493053261,
  3: 12493053261,
  4: 12493053261}}
df=pd.DataFrame(data)
df["fecha"]=prueba.apply(lambda x: datetime.datetime.strptime(x["fecha/hora"],"%d %b. %Y %H:%M:%S"),axis=1)

如果你们知道任何能帮助我解决这个问题的教程,我将很高兴看到。老实说,我正在遵循文档,但我就是想不出如何有效地使用datetime对象。还因为我收到的每个数据库都有不同长度的不同格式。

此外,原始日期格式为tz "gmt-8“。我把它擦掉了,但如果有办法处理它,那就更好了。

代码语言:javascript
复制
data={'fecha/hora': {0: '2 ene. 2020 9:54:46 GMT-8',
  1: '2 ene. 2020 10:18:51 GMT-8',
  2: '2 ene. 2020 10:19:18 GMT-8',
  3: '2 ene. 2020 11:58:04 GMT-8',
  4: '2 ene. 2020 15:56:51 GMT-8'},
 'Id. de liquidación': {0: 12493053261,
  1: 12493053261,
  2: 12493053261,
  3: 12493053261,
  4: 12493053261}}
df=pd.DataFrame(data)

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-24 07:44:42

原来'.'是西班牙语月份缩写的一部分。因此,您不必再次声明它。您可以在以下位置查看这些值:

代码语言:javascript
复制
datetime.date(2020, 1, 1).strftime('%b')

这就给了你ene.。因此,如果您将日期格式更改为:

代码语言:javascript
复制
datetime.datetime.strptime('2 ene. 2020 10:18:51', "%d %b %Y %H:%M:%S")

而不是:

代码语言:javascript
复制
datetime.datetime.strptime('2 ene. 2020 10:18:51', "%d %b. %Y %H:%M:%S")

这对我很有效。

此外,pandas确实有一个to_datetime()函数,您可以将其用于序列的日期时间转换。它使用与datetime模块相同的格式字符串。所以这将会达到你想要的效果:

代码语言:javascript
复制
df["fecha"] = pd.to_datetime(df["fecha/hora"], format="%d %b %Y %H:%M:%S")
票数 0
EN

Stack Overflow用户

发布于 2020-12-24 07:33:58

我建议你使用像arrow这样的库。它允许用户指定一个本地(默认情况下使用"en_US")来使用,如果你需要解析多个本地datetime格式,它也可以不同于你PC中的本地。你可以在他们的documentation上找到更多关于arrow的信息。它很容易使用,它为你提供了许多不同的功能和丰富的指南来学习如何使用它。

下面是一个关于如何解析指定的西班牙语日期时间的示例:

代码语言:javascript
复制
import arrow  # installed via pip

df["fecha"]=df.apply(lambda x: arrow.get(x["fecha/hora"], "D MMM. YYYY H:mm:ss", locale="es_ES").datetime, axis=1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65432018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档