美文网首页
Python3 - 字符串转换为日期

Python3 - 字符串转换为日期

作者: 惑也 | 来源:发表于2018-12-21 10:01 被阅读57次

问题

将字符串日期,转换为 datetime 对象以便在上面执行非字符串操作。

解决方案

使用Python的标准模块 datetime 可以很容易的解决这个问题。比如:

from datetime import datetime

text = '2018-11-21'

a = datetime.strptime(text, "%Y-%m-%d").date()
b = datetime.today().date()
diff = b - a

print(a)
print(b)
print(diff)

2018-11-21
2018-12-21
30 days, 0:00:00

讨论

datetime.strptime() 方法支持很多的格式化代码, 比如 %Y 代表4位数年份, %m 代表两位数月份。 这些格式化占位符也可以反过来使用,将日期输出为指定的格式字符串形式。

将一个 datetime 对象, 格式化为漂亮易读形式的字符串,可以使用datetime.strftime()。比如:

c = datetime(2018, 12, 23, 21, 37, 4, 177393)
nice_c = datetime.strftime(c, '%A %B %d, %Y')
print(c)
print(nice_c)

2018-12-23 21:37:04.177393
Sunday December 23, 2018

需要注意的是,strptime()的性能比想象中的差很多, 因为它是使用纯Python实现,并且必须处理所有的系统本地设置。

如果代码中需要解析大量的日期,并且已经知道了日期字符串的确切格式,可以自己实现一套解析方案来获取更好的性能。 比如,已知日期格式是 YYYY-MM-DD ,可以像下面这样实现一个解析函数:

from datetime import datetime

def parse_ymd(s):
    year_s, mon_s, day_s = s.split('-')
    return datetime(int(year_s), int(mon_s), int(day_s))

print(parse_ymd('2018-12-20'))

2018-12-20 00:00:00

实际测试中,这个函数比 datetime.strptime() 快7倍多。 如果需要处理大量的涉及到日期的数据,建议最好考虑下这个方案。

相关文章

  • ios日期处理

    目录: 1、字符串转换为日期; 2、时间戳转换为日期; 3、日期转换为字符串 4、获取日期中的年、月、日、时、分、...

  • iOS开发实用代码

    1.设置 UITextField 的placeholder的相关属性 2.字符串转换为日期 日期转换为字符串 ...

  • MYSQL日期转换(最全!!!)

    SQL日期转字符串,以及字符串转日期

  • Python3 - 字符串转换为日期

    问题 将字符串日期,转换为 datetime 对象以便在上面执行非字符串操作。 解决方案 使用Python的标准模...

  • 不一样的 Java 日期格式化大全

    前言 在 Java 中,经常要将时间字符串转换为日期,或者要将日期转换为时间字符串。这种操作一般都是用 java....

  • 日期转换和日期比较

    字符串转日期 / 转时间戳 字符串转日期函数: str_to_date(string:timestr,string...

  • OC乱记

    1、字符串转换为日期 2、日期转换为字符串 3、字体大小转化 750设计图 ppi72的情况下(Xcode默认字体...

  • 史上最全Date扩展

    一、扩展使用 1.字符串转日期 2.日期转字符串 3.日期转各种日期 4.各种日期开始结束判断 二、DateExt.kt

  • Java 根据出生日期计算年龄

    1.把出生日期字符串转换为日期格式。 publicstaticDate parse(String strDate)...

  • UIimage和NSString的转换

    UIImage与字符串互转//图片转字符串 //字符串转图片 截图 这样可以通过把图片转换为字符串传输。。。。

网友评论

      本文标题:Python3 - 字符串转换为日期

      本文链接:https://www.haomeiwen.com/subject/eolpkqtx.html