字符串与datetime的相互转换

来源:互联网 发布:亡者归来第三季 知乎 编辑:程序博客网 时间:2024/05/17 15:19

利用str或strftime方法可以传入一个格式化字符串。

>>> from datetime import datetime>>> >>> stamp = datetime(2016,10,30)>>> str(stamp)'2016-10-30 00:00:00'>>> stamp.strftime('%Y-%m-%d')'2016-10-30'>>> 

将格式化变化后字符串转换为日期:

>>> >>> value = '2016-10-30'>>> datetime.strptime(value,'%Y-%m-%d')datetime.datetime(2016, 10, 30, 0, 0)>>> 

或者更好的方法是通过dateutil中的parser.parser方法解析(该方法可以解析大部分人类能够理解的日期表示形式):

>>> from dateutil.parser import parse>>> parse('2016-10-30')datetime.datetime(2016, 10, 30, 0, 0)>>> >>> parse('20/10/2016')datetime.datetime(2016, 10, 20, 0, 0)>>> parse('20/10/2016',dayfirst=True)datetime.datetime(2016, 10, 20, 0, 0)>>> 

或者也可以通过pandas库来处理(首先需要安装pandas,pip2 install pandas)

>>> import pandas as pd>>> >>> datestr = ['7/6/2016','10/20/2016']>>> >>> pd.to_datetime(datestr)DatetimeIndex(['2016-07-06', '2016-10-20'], dtype='datetime64[ns]', freq=None)>>> 

datetime格式定义:

%Y  4位数的年%y  2位数的年%m  2位数的月[01,12]%d  2位数的日[01,31]%H  时(24小时制) [00,23]%I  时(12小时制) [01,12]%M  2位数的分[00,59]%S  秒[00,61] (秒60和秒61用于闰秒)%w  用整数表示的星期几[0 (星期天),6]%U  每年的第几周[00,53] 星期天被认为是每周的第一天,    每年第一个星期天之前的那几天就被认为是“第0周”%W  每年的第几周[00,53] 星期一被认为是每周的第一天,    每年第一个星期一之前的那几天就被认为是“第0周”%z  以+HHMM或-HHMM表示的UTC时区偏移量,如果市区为naive    (时间对象有naive和aware之分),则返回空字符串%F  %Y-%m-%d简写形式,例如:2016-02-15%D  %m/%d/%y简写形式,例如:02/15/16%a  星期几的简写%A  星期几的全称%b  月份的简写%B  月份的全称%c  完整的日期和时间,例如“Tue 01 May 2016 04:20:58 PM”%p  不同环境中的AM或PM%x  适合于当前环境的日期格式,例如,在美国,    “May 1,2016”会产生"05/01/2016"%X  适合于当前环境的时间格式,例如:"04:24:12 PM"
0 0
原创粉丝点击