使用Python脚本,我需要读取一个CVS文件,其中日期格式为DD/MM/YYYY,并在将其保存到SQLite数据库之前将它们转换为YYYY-MM-DD.
这几乎可以工作,但因为我没有提供时间而失败:
from datetime import datetime
lastconnection = datetime.strptime("21/12/2008", "%Y-%m-%d")
#ValueError: time data did not match format: data=21/12/2008 fmt=%Y-%m-%d
print lastconnection
Run Code Online (Sandbox Code Playgroud)
我假设datetime对象中有一个方法可以很容易地执行此转换,但我找不到如何执行此操作的示例.谢谢.
unw*_*ind 57
你的示例代码是错误的.这有效:
import datetime
datetime.datetime.strptime("21/12/2008", "%d/%m/%Y").strftime("%Y-%m-%d")
Run Code Online (Sandbox Code Playgroud)
对strptime()的调用根据第二个参数中指定的格式解析第一个参数,因此这两个参数需要匹配.然后,您可以调用strftime()将结果格式化为所需的最终格式.
Sil*_*ost 14
你首先需要将字符串转换为datetime元组,然后将该datetime元组转换为字符串,它将如下所示:
lastconnection = datetime.strptime("21/12/2008", "%d/%m/%Y").strftime('%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)
Mar*_*ark 10
我是编程新手。我想将 from 转换为yyyy-mm-dd以dd/mm/yyyy我所在地区的人们使用和识别的格式打印出日期。
上面接受的答案让我走上了正确的轨道。
我最终得到的答案是:
import datetime
today_date = datetime.date.today()
print(today_date)
new_today_date = today_date.strftime("%d/%m/%Y")
print (new_today_date)
Run Code Online (Sandbox Code Playgroud)
import 语句后的前两行以美国格式 (2017-01-26) 给出今天的日期。最后两行将其转换为英国和其他国家/地区 (26/01/2017) 认可的格式。
您可以缩短此代码,但我将其保留原样,因为它对我作为初学者有帮助。我希望这对其他初学者程序员有所帮助!
还有没有其他人认为将这些字符串转换为日期/时间对象是一种浪费,最终这是一个简单的文本转换吗?如果您确定输入日期将是有效的,则可以使用:
>>> ddmmyyyy = "21/12/2008"
>>> yyyymmdd = ddmmyyyy[6:] + "-" + ddmmyyyy[3:5] + "-" + ddmmyyyy[:2]
>>> yyyymmdd
'2008-12-21'
Run Code Online (Sandbox Code Playgroud)
几乎可以肯定,这将比日期转换更快。
如果需要转换整个列(从pandas DataFrame),请首先将其 ( pandas Series) 转换为datetime使用的格式to_datetime,然后使用.dt.strftime:
def conv_dates_series(df, col, old_date_format, new_date_format):
df[col] = pd.to_datetime(df[col], format=old_date_format).dt.strftime(new_date_format)
return df
Run Code Online (Sandbox Code Playgroud)
import pandas as pd
test_df = pd.DataFrame({"Dates": ["1900-01-01", "1999-12-31"]})
old_date_format='%Y-%m-%d'
new_date_format='%d/%m/%Y'
conv_dates_series(test_df, "Dates", old_date_format, new_date_format)
Dates
0 01/01/1900
1 31/12/1999
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88587 次 |
| 最近记录: |