简体   繁体   English

在python2.7中将数字,字符串转换为日期时间

[英]converting numeric,string to datetime in python2.7

I have a datetime coming in 4 different columns ( year,month,date,time) and values are (2001,01,01,1600Z) 我有一个datetime进入4个不同的列(年,月,日期,时间),值分别为(2001,01,01,1600Z)

How do I convert to datetime in python? 如何在python中转换为datetime?

Using datetime module. 使用datetime模块。

Ex: 例如:

import datetime
dList = [(2001,01,01,'1600Z'), (2001,01,01,'1700Z')]
for i in dList:
    print( datetime.datetime(year=i[0], month=i[1], day=i[2], hour=int(i[3][:-3])) )

Output: 输出:

2001-01-01 16:00:00
2001-01-01 17:00:00

Using datetime.strptime function (the formatting rules are described in the documentation): 使用datetime.strptime函数( 格式规则在文档中进行了描述):

from datetime import datetime

values = (
('2001','01','01','1600Z'),
('2002','02','03','1500Z'),
('2003','02','03','1400Z'),
)

for v in values:
    d = datetime.strptime('-'.join(v), '%Y-%m-%d-%H%MZ')
    print(d)

Prints: 印刷品:

2001-01-01 16:00:00
2002-02-03 15:00:00
2003-02-03 14:00:00

This should work : 这应该工作:

>>> import datetime
>>> tp=(2001,01,01,'1600Z')
>>> dt = datetime.datetime(tp[0],tp[1],tp[2],int(tp[3][:-3]),int(tp[3][2:][:-1]))
>>> print dt

Using strptime : 使用strptime

from datetime import datetime

val=(2001,01,01,"1600Z")
d=datetime.strptime("%s %s %s %s" %(val[0],val[1],val[2],val[3]), "%Y %m %d %H%MZ")

print d.isoformat() 

Use dateutil package to parse datetime. 使用dateutil包解析日期时间。 You can install dateutil package by doing pip install python-dateutil 您可以通过执行pip install python-dateutil来安装dateutil软件包

from dateutil import parser
date = parse('-'.join(('2001','01','01','1600Z')))
print (date)
# 2001-01-01 16:00:00+00:00

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM