Преобразование персидской даты Шамси (Джалали) в метку времени: подробное руководство

В этой статье мы рассмотрим различные методы преобразования персидских дат Шамси (также известных как Джалали) в временные метки. Даты Шамси обычно используются в персидском календаре, и преобразование их в метки времени может быть полезно для различных задач программирования. Мы предоставим примеры кода на разных языках программирования, которые помогут вам понять и реализовать эти методы преобразования. Давайте погрузимся!

Метод 1: использование специальной библиотеки (Python)
Python предоставляет специальную библиотеку под названием «persiantools», которая упрощает преобразование дат Шамси в временные метки. Вот пример того, как его использовать:

from persiantools.jdatetime import JalaliDateTime
shamsi_date = "1400-12-25"  # Shamsi date in the format "YYYY-MM-DD"
jdatetime = JalaliDateTime.strptime(shamsi_date, "%Y-%m-%d")
timestamp = jdatetime.timestamp()
print(timestamp)

Метод 2: использование встроенных функций (JavaScript)
В JavaScript нет встроенного метода для обработки дат Шамси, но вы можете использовать следующую логику для преобразования даты Шамси в метку времени:

function shamsiToTimestamp(shamsiDate) {
  const [year, month, day] = shamsiDate.split("-").map(Number);

  const gregorianDate = new Date(year + 621, month - 1, day);  // Convert to Gregorian date

  return gregorianDate.getTime() / 1000;  // Convert to timestamp in seconds
}
const shamsiDate = "1400-12-25";  // Shamsi date in the format "YYYY-MM-DD"
const timestamp = shamsiToTimestamp(shamsiDate);
console.log(timestamp);

Метод 3: использование пользовательской логики (Java)
Если вы работаете с Java, вы можете создать специальную функцию для преобразования дат Шамси в временные метки. Вот пример:

import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class ShamsiToTimestamp {
    public static long shamsiToTimestamp(String shamsiDate) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate shamsiLocalDate = LocalDate.parse(shamsiDate, formatter);
        LocalDate gregorianLocalDate = shamsiLocalDate.plusYears(621).minusDays(1);  // Convert to Gregorian date
        return gregorianLocalDate.atStartOfDay(ZoneId.systemDefault()).toEpochSecond();
    }
    public static void main(String[] args) {
        String shamsiDate = "1400-12-25";  // Shamsi date in the format "YYYY-MM-DD"
        long timestamp = shamsiToTimestamp(shamsiDate);
        System.out.println(timestamp);
    }
}

В этой статье мы обсудили несколько методов преобразования персидских дат Шамси (Джалали) в временные метки. Мы предоставили примеры кода на Python, JavaScript и Java, чтобы продемонстрировать процесс преобразования. Предпочитаете ли вы использовать специальные библиотеки или реализовывать собственную логику, теперь у вас есть инструменты для эффективной обработки преобразований дат Shamsi в ваших проектах программирования. Приятного кодирования!