Преобразовать григорианскую (христианскую) дату в персидскую дату и наоборот в Python
Как преобразовать Gregorian date
в Persian date
и наоборот в Python
?
Все, что я нашел, было некоторыми виджетами и материалами, которые создадут персидский календарь. Я не хочу персидского календаря. Я просто хочу конвертировать даты друг в друга.
Итак, как я могу это сделать?
Ответы
Ответ 1
После того, как вы все больше искали в Интернете, я нашел библиотеку, которую кто-то написал для этой цели: Jalali.py.
Вы можете использовать этот код Python для преобразования григорианских и персидских дат друг к другу.
>>> import jalali
>>> jalali.Persian('1393-1-11').gregorian_string()
'2014-3-31'
>>> jalali.Persian(1393, 1, 11).gregorian_datetime()
datetime.date(2014, 3, 31)
>>> jalali.Persian('1393/1/11').gregorian_string("{}/{}/{}")
'2014/3/31'
>>> jalali.Persian((1393, 1, 11)).gregorian_tuple()
(2014, 3, 31)
>>> jalali.Gregorian('2014-3-31').persian_string()
'1393-1-11'
>>> jalali.Gregorian('2014,03,31').persian_tuple()
(1393, 1, 11)
>>> jalali.Gregorian(2014, 3, 31).persian_string("{0}")
'1393'
Ответ 2
Кроме того, вы можете использовать библиотеку jdatetime
следующим образом:
import jdatetime
jalili_date = jdatetime.date(1396,2,30).togregorian()
gregorian_date = jdatetime.date.fromgregorian(day=19,month=5,year=2017)
Подробнее см. другие функции в документе.
Ответ 3
Вы можете использовать библиотеку PersianTools:
Пример:
>>> from persiantools.jdatetime import JalaliDate
>>> import datetime
>>> JalaliDate.today()
JalaliDate(1395, 4, 18, Jomeh)
>>> JalaliDate(datetime.date(1990, 9, 23)) # Gregorian to Jalali
JalaliDate(1369, 7, 1, Yekshanbeh)
>>> JalaliDate.to_jalali(2013, 9, 16) # Gregorian to Jalali
JalaliDate(1392, 6, 25, Doshanbeh)
>>> JalaliDate(1392, 6, 25).to_gregorian() # Jalali to Gregorian
datetime.date(2013, 9, 16)
>>> JalaliDate.fromtimestamp(578707200) # Timestamp to Jalali
JalaliDate(1367, 2, 14, Chaharshanbeh)