字符串时间与datetime对象相互转换

字符串时间与datetime对象互相转换

  • 普通字符串==>>datetime对象
    strptime 格式要对应
    parser.parse 格式自由
  • datetime对象==>>普通字符串
    strftime
from dateutil import parser
import datetime
time_string='Thu Dec 22 12:40:25 2019'# 'Thu Dec 22 10:35:25 2019',这里可以是任意的时间格式
##普通字符串==>>datetime对象
datetime_obj = parser.parse(time_string)
print(type(datetime_obj))# <type 'datetime.datetime'>
##datetime对象==>>普通字符串
time_string1=datetime_obj.strftime('%Y-%m-%d %H:%M:%S')#datetime对象->>字符串
print(time_string1) # 2019-12-22 12:40:25
time_string2=datetime_obj.strftime('%Y-%m-%d')#datetime对象->>字符串
print(time_string2)# 2019-12-22
##普通字符串==>>datetime对象这种方法的格式要求对应,不如第一种利用parser.parse方便
datime_obj1=datetime.datetime.strptime(time_string1, '%Y-%m-%d %H:%M:%S')
print(datime_obj1)#2019-12-22 12:40:25
print(type(datime_obj1))#<class 'datetime.datetime'>

在pandas中转换

  • 普通字符串==>>datetime对象

可以直接使用 pd.to_datetime将时间列的字符串设置为datetime类型

order_data['start_time'] = pd.to_datetime(order_data['start_time'], format="%Y-%m-%d %H:%M:%S")

datetime有很多属性可以获得有用的信息

order_data['Year'] = order_data['start_time'].dt.year
order_data['Month'] = order_data['start_time'].dt.month
order_data['MonthDayNum'] = order_data['start_time'].dt.day
order_data['DayOfWeek'] = order_data['start_time'].dt.day_name()
order_data['HourOfDay'] = order_data['start_time'].dt.hour
order_data['MinuteOfHour'] = order_data['start_time'].dt.minute

利用apply进行前面的转换,则pd.to_datetime等价于下面表达

order_data['start_time'] =order_data['start_time'].apply(lambda x :parser.parse(x))
  • datetime对象==>>普通字符串

利用apply和strftime

data['md'] =data['start_time'].apply(lambda x: x.strftime('%m-%d'))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

fff2zrx

谢谢老板

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

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

打赏作者

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

抵扣说明:

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

余额充值