作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从旧系统转换许多晦涩的日期格式。日期作为字符串解包/处理并转换为 ISO 8601 格式。
这个特定的函数尝试将 YYMMDD0F 转换为 YYYYMMDD ——函数名称说明了一切。从 2000 年开始的日期让事情变得困惑,显然这不是处理它们的最 Pythonic 方式。如何使用 dateutil.parser
做得更好?
def YYMMDD0FtoYYYYMMDD(date):
YY = date[0:2]
MM = date[2:4]
DD = date[4:6]
if int(YY) >= 78:
YYYY = '19%s' % YY
elif 0 <= int(YY) <= 77 and MM!='' and MM!='00':
YYYY = '20%s' % YY
else:
YYYY = '00%s' % YY
return "%s-%s-%s" % (YYYY, MM, DD)
最佳答案
您可能想查看datetime
模块。使用其日期格式化功能,您可以执行以下操作:
>>> import datetime as dt
>>> ds = '0104160F'
>>> parsed = dt.datetime.strptime(ds, "%y%m%d0F")
>>> parsed
datetime.datetime(2001, 4, 16, 0, 0)
>>> reformatted = dt.datetime.strftime(parsed, "%Y-%m-%d")
>>> reformatted
'20010416'
在您的函数中,您可以按如下方式使用它们:
def YYMMDD0FtoYYYYMMDD(date):
return dt.datetime.strftime(dt.datetime.strptime(date, "%y%m%d0F"), "%Y-%m-%d")
关于迄今为止 ISO 8601 的 python 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22328160/
我在将一列转换为日期时遇到一些问题。 我希望将'01/02/98'(日、月、年)转换为'1998-02-01'(年、月、日). 以及如何将 '98' 转换为 1998。 最佳答案 I want thi
我正在从旧系统转换许多晦涩的日期格式。日期作为字符串解包/处理并转换为 ISO 8601 格式。 这个特定的函数尝试将 YYMMDD0F 转换为 YYYYMMDD ——函数名称说明了一切。从 2000
我是一名优秀的程序员,十分优秀!