以下是我在2.7中尝试的 python 代码,
def date_format_change():
DB_date = "03-NOV-2016"
split2 = DB_date.split('-')
print split2[0]
M_date = float(round(split2[0]),2)
print M_date
Month = {'JAN': '1', 'FEB': '2', 'MAR': '3', 'APR': '4', 'MAY': '5','JUN': '6', 'JUL': '7', 'AUG': '8', 'SEP': '9',
'OCT': '10', 'NOV': '11', 'DEC': '12'}
DB_Month = str(split2[1])
print DB_Month
M_Month = int(Month[DB_Month])
M_year = split2(2)
print M_year
Changed_format = str(M_Month) +"/"+ str(M_date)+"/"+ str(M_year)
print Changed_format
date_format_change()
但我收到错误说:
Traceback (most recent call last):
File "C:/Users/aannam002c/workspace/Website/Century/views.py", line 17, in <module>
03
date_format_change()
File "C:/Users/aannam002c/workspace/Website/Century/views.py", line 5, in date_format_change
M_date = float(round(split2[0]),2)
TypeError: a float is required
Process finished with exit code 1
任何人都能帮忙解决这个问题吗?
答案 0 :(得分:2)
以下是您问题的简单解决方案:
from datetime import datetime
DB_date = "03-NOV-2016"
print datetime.strptime(DB_date, '%d-%b-%Y').strftime('%m/%d/%Y')
希望这有帮助。
答案 1 :(得分:1)
float()接受一个参数,你给出了两个,并且日期的浮点类型也不好看。 int 可以胜任。此外,round
需要一个数字,而split2[0]
是一个字符串。
这可能是你想要的:
def date_format_change():
DB_date = "03-NOV-2016"
split2 = DB_date.split('-')
M_date = int(split2[0])
Month = {'JAN': '1', 'FEB': '2', 'MAR': '3', 'APR': '4', 'MAY': '5','JUN': '6', 'JUL': '7', 'AUG': '8', 'SEP': '9',
'OCT': '10', 'NOV': '11', 'DEC': '12'}
print (M_date)
DB_Month = split2[1]
print (DB_Month)
M_Month = int(Month[DB_Month])
M_year = split2[2]
print (M_year)
Changed_format = str(M_Month) +"/"+ str(M_date)+"/"+ str(M_year)
print (Changed_format)
date_format_change()
它返回:
3
NOV
2016
11/3/2016
答案 2 :(得分:0)
我特别喜欢dateparser包。它使解析日期的第一步变得非常轻松。只需向它扔一个类似于日期或时间参考的字符串,它就会将它转换为datetime
。
$ pip install dateparser
安装完成后:
import dateparser
from datetime import datetime
DB_date = "03-NOV-2016"
date = dateparser.parse(DB_date)
print datetime.datetime.strftime(date, '%m/%-d/%Y')
# Output: 11/3/2016