python中日期字符串与datetime类型的相互转换


背景

我们在平常写代码的过程中最常遇到的就是形如2021-05-12,2021/05/21等的文本字符串,这两串还算是比较规范的写法,不规范的甚至还有2021-5-12,2021.5.12五花八门,只有想不到,没有写不出来,让人甚是头疼.这一篇会简单介绍

  1. datetime如何转换成日期字符串
  2. 日期字符串如何转换成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的缩写,表示将日期时间转换为文本.在转换的时候,对应格式化字符如下表(大小写敏感)

字符含义举例
%Y2021
%m05
%d12
%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格式,可以参见我之前的文章

Python中timestamp和日期时间的转换


补充个知识点,parsejavaScript里面非常常见,例如强制转换类型的函数parseInt,parseFloat,例如解析json的函数是JSON.parse()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

但老师

要是看起来爽 求打赏一耳光

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值