我需要在波斯语中将''1396/4/28''转换为''1396/04/28''。
代码:
from service import jalali
now_date = datetime.datetime.now() // 2017-07-19 21:32:34.574369
date = now_date.strftime('%Y/%m/%d') // 2017-07-19
from_date = jalali.Gregorian(date).persian_string("{}/{}/{}") // '1396/4/28'
如何在python的波斯语中将''1396/4/28''转换为''1396/04/28''?
答案 0 :(得分:1)
使用strptime:
from datetime import datetime
from service import jalali
from_date = jalali.Gregorian(date).persian_string("{}/{}/{}")
print datetime.strptime('1396/4/28', '%Y/%m/%d')
print datetime.strptime(from_date, '%Y/%m/%d')
> datetime.datetime(1396, 4, 28, 0, 0)
> datetime.datetime(1396, 4, 28, 0, 0)
如果您的意思是如何使用strftime
打印这样的日期 - 这对于日期< 1900来说是不可能的。手动打印:
print ("%04d/%02d/%02d" % (date.year, date.month, date.day))
> 1396/04/28
答案 1 :(得分:0)
您可以使用PersianTools:
from persiantools.jdatetime import JalaliDateTime
import datetime
now_date = datetime.datetime.now() # datetime.datetime(2021, 2, 11, 15, 1, 57, 256596)
from_date = JalaliDateTime.to_jalali(now_date) # JalaliDateTime(1399, 11, 23, 15, 1, 57, 256596)
from_date.strftime("%Y/%m/%d") # '1399/11/23'