В этой статье мы рассмотрим различные методы преобразования персидских дат Шамси (также известных как Джалали) в временные метки. Даты Шамси обычно используются в персидском календаре, и преобразование их в метки времени может быть полезно для различных задач программирования. Мы предоставим примеры кода на разных языках программирования, которые помогут вам понять и реализовать эти методы преобразования. Давайте погрузимся!
Метод 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 в ваших проектах программирования. Приятного кодирования!