python中日期字符串与datetime类型的相互转换
Posted 但老师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中日期字符串与datetime类型的相互转换相关的知识,希望对你有一定的参考价值。
背景
我们在平常写代码的过程中最常遇到的就是形如2021-05-12
,2021/05/21
等的文本字符串,这两串还算是比较规范的写法,不规范的甚至还有2021-5-12,2021.5.12五花八门,只有想不到,没有写不出来,让人甚是头疼.这一篇会简单介绍
datetime
如何转换成日期字符串- 日期字符串如何转换成
datetime
代码
1. datetime
如何转换成日期字符串
有一定python经验的人都知道,datetime.datetime
是python的一个类,一般通过isinstance
函数来判断
>>> import datetime
>>> now = datetime.datetime.now() # 当前时间
>>> isinstance(now,datetime.datetime)
True
我在将列表或数组写到文件中的时候,就经常会因为遇到这种类型且没有进行转换而报错
现在在上一份代码的基础上,将datetime
转换成我们常见的日期字符串,以进行写入或者其他展示操作
>>> date = now.strftime('%Y-%m-%d')
>>> date
'2021-05-12'
我理解strftime
是str from time的缩写,表示将日期时间转换为文本.在转换的时候,对应格式化字符如下表(大小写敏感)
字符 | 含义 | 举例 |
---|---|---|
%Y | 年 | 2021 |
%m | 月 | 05 |
%d | 日 | 12 |
%H | 小时 | 20 |
%M | 分钟 | 45 |
%S | 秒钟 | 34 |
如果转换成日期时间,完整的写法如下
>>> import datetime
>>> now = datetime.datetime.now()
>>> time = now.strftime('%Y-%m-%d %H:%M:%S')
>>> time
'2021-05-12 20:45:34'
2. 日期字符串如何转换成datetime
一般从别处获取到的日期数据,都是文本格式存储的
>>> import datetime
>>> date = '2021-05-12'
>>> dt = datetime.datetime.strptime(date,'%Y-%m-%d')
>>> dt
datetime.datetime(2021,5,12,0,0)
strptime
我理解是 str parse time,意即将文本转换成标准的日期时间的格式.当然这个函数还不够简化,因为它需要你告诉它日期时间的格式
如果需要再将datetime
转换成时间戳timestamp
格式,可以参见我之前的文章
补充个知识点,parse
在javascript
里面非常常见,例如强制转换类型的函数parseInt
,parseFloat
,例如解析json的函数是JSON.parse()
以上是关于python中日期字符串与datetime类型的相互转换的主要内容,如果未能解决你的问题,请参考以下文章
python中datetime模块中的strftime与strptime
python中datetime模块中的strftime与strptime