std.time
Datum/Zeit-Typen (date, time, datetime, timestamp) mit Unix-Sekunden und Mikrosekunden-Auflösung. Now() liefert die aktuelle datetime, NowUs() den hochauflösenden Zeitstempel (µs), NowMs() in Millisekunden. Umrechnung zwischen Julian Day Number und Gregorianischem Kalender, Schaltjahr-Prüfung (IsLeapYear), Wochentag-Berechnung, Timezone-Support (UTC, CET, CEST via ApplyTimeZone). Zeitkonstanten: SECOND, MINUTE, HOUR, DAY in Mikrosekunden.
Einsatzbereiche: Benchmarking und Profiling, HTTP/SMTP-Protokoll-Zeitstempel, Scheduling, Rate-Limiting, Session-Timeouts.
Autor: Andreas Röne
Copyright: 2024-2025 Andreas Röne
Typen
Funktionen
| Signatur | Sichtbarkeit | Beschreibung |
DaysFromCivil(year: int64, month: int64, day: int64): int64 | pub | Berechnet Tage aus Datum (Julian Day) |
CivilYearFromDays(days: int64): int64 | pub | Extrahiert Jahr aus Julian-Day-Zahl |
CivilMonthFromDays(days: int64): int64 | pub | Extrahiert Monat aus Julian-Day-Zahl |
CivilDayFromDays(days: int64): int64 | pub | Extrahiert Tag aus Julian-Day-Zahl |
IsLeapYear(y: int64): bool | pub | Prüft ob Jahr ein Schaltjahr ist |
DateFromYmd(year: int64, month: int64, day: int64): date | pub | Erstellt date-Wert aus Jahr/Monat/Tag |
YearFromDate(d: date): int64 | pub | Extrahiert Jahr aus date-Wert |
MonthFromDate(d: date): int64 | pub | Extrahiert Monat aus date-Wert |
DayFromDate(d: date): int64 | pub | Extrahiert Tag aus date-Wert |
TimeFromHms(hour: int64, minute: int64, second: int64): time | pub | Erstellt time-Wert aus Stunde/Minute/Sekunde |
HourFromTime(t: time): int64 | pub | Extrahiert Stunde aus time-Wert |
MinuteFromTime(t: time): int64 | pub | Extrahiert Minute aus time-Wert |
SecondFromTime(t: time): int64 | pub | Extrahiert Sekunde aus time-Wert |
DatetimeFromUnixSeconds(sec: int64): datetime | pub | Erstellt datetime aus Unix-Sekunden |
DatetimeToUnixSeconds(dt: datetime): int64 | pub | Konvertiert datetime in Unix-Sekunden |
TimestampFromUnixSeconds(sec: int64): timestamp | pub | Erstellt Mikrosekunden-Timestamp |
UnixSecondsFromTimestamp(ts: timestamp): int64 | pub | Extrahiert Unix-Sekunden aus Timestamp |
Externe Funktionen
| Signatur | Beschreibung |
now_unix(): int64 | Gibt aktuelle Unix-Zeit in Sekunden zurück |
now_unix_ms(): int64 | Gibt aktuelle Unix-Zeit in Millisekunden zurück |
Now(): datetime | Gibt aktuelle datetime zurück |
NowUs(): timestamp | Gibt hochauflösenden Mikrosekunden-Timestamp zurück |
NowMs(): int64 | Gibt aktuelle Zeit in Millisekunden zurück |
DayOfWeekFromDate(d: date): int64 | Gibt Wochentag eines Datums zurück |
DaysInMonth(year: int64, month: int64): int64 | Gibt Tagesanzahl eines Monats zurück |
Konstanten
| Name | Typ | Wert | Sichtbarkeit |
SECOND | int64 | 1000000 | pub |
MINUTE | int64 | 60000000 | pub |
HOUR | int64 | 3600000000 | pub |
DAY | int64 | 86400000000 | pub |
TimeZone (struct)
| Feld | Typ |
name | pchar |
offset_seconds | int64 |
| Signatur | Sichtbarkeit | Beschreibung |
ZoneUTC(): TimeZone | pub | Gibt UTC-Zeitzone zurück |
ZoneCET(): TimeZone | pub | Gibt CET-Zeitzone (UTC+1) zurück |
ZoneCEST(): TimeZone | pub | Gibt CEST-Zeitzone (UTC+2) zurück |
ApplyTimeZone(dt: datetime, zone: TimeZone): datetime | pub | Wendet Zeitzone auf datetime an |