如何在python中的jalali日期使用strftime?

时间:2017-07-19 17:05:38

标签: python

我需要在波斯语中将''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''?

2 个答案:

答案 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'