转换日期格式:2 位年份到 4 位年份

Posted

技术标签:

【中文标题】转换日期格式:2 位年份到 4 位年份【英文标题】:Convert date format: 2 digit year to 4 digit year 【发布时间】:2021-02-04 19:24:39 【问题描述】:

如果我有一个包含日期的字符串,例如 '29/01/21',我如何将其格式转换为 4 年数字而不是 2 位数字?

'29/01/21'

'29/01/2021'

【问题讨论】:

绝对没有理由重新引入 Y2K 错误。不要出于任何原因存储此类日期。尤其是在 2021 年,也就是劳埃德银行和苏格兰皇家银行银行系统崩溃的一年后,他们的千年虫“修复”开始将 20 视为 1920 年 这是我第一次听说这个错误。但我试图用 4 位而不是 2 来存储年份。这没有问题,对吧? 这只是the most famous, most expensive bug in the history of computing。甚至有十几部关于此的电影,包括Entrapment with Sean Connery。至于存储日期,日期不是字符串。 datetime 在 Python 和所有数据库(SQLite 除外)中都是二进制值。同样,永远,永远不要使用或允许使用 2 位数的日期。此外,为什么假设 21 是 2021 年? Captain Tom 出生于 1920 年。你不能假设 21 是 2021 年 从正确的角度来看,您真的真的不想因为 Y2K 错误而搞砸疫苗接种。现在有很多人正在接种疫苗,如果你只存储两位数字,他们的出生日期将改变 100 年 不幸的是,我们中的一些人收到这样的数据,因为它们来自我们无法控制的遗留系统。但是有人没有听说过千年虫,却让我觉得很古老。 【参考方案1】:

Python 的日期时间库可能会有所帮助。

请参考以下代码。

from datetime import datetime

datetime.datetime.strptime('29/01/21', '%d/%m/%y').strftime("%M/%d/%Y")

【讨论】:

【参考方案2】:

这是一种解决方案:

mystring = '29/01/21'
mystring = mystring[:6]+'20'+mystring[-2:]
print(mystring)

输出:

'29/01/2021'

【讨论】:

以上是关于转换日期格式:2 位年份到 4 位年份的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发中的NSDateFormatter日期格式解析总结

日期格式:

new Date() 日期格式处理

excel中转换日期格式

Js获取当前日期时间及格式化操作

Js获取当前日期时间及Js日期格式化