mirror of
https://github.com/lune-org/lune.git
synced 2025-05-04 10:43:57 +01:00
109 lines
2 KiB
Lua
109 lines
2 KiB
Lua
-- TODO: Add docs
|
|
|
|
export type Locale = "en" | "de" | "es" | "fr" | "it" | "ja" | "pl" | "pt-br" | "pt" | "tr"
|
|
|
|
export type Timezone = "utc" | "local"
|
|
|
|
export type ShortMonth =
|
|
"jan"
|
|
| "feb"
|
|
| "mar"
|
|
| "apr"
|
|
| "may"
|
|
| "jun"
|
|
| "jul"
|
|
| "aug"
|
|
| "sep"
|
|
| "oct"
|
|
| "nov"
|
|
| "dec"
|
|
|
|
export type Month =
|
|
"january"
|
|
| "february"
|
|
| "march"
|
|
| "april"
|
|
| "may"
|
|
| "june"
|
|
| "july"
|
|
| "august"
|
|
| "september"
|
|
| "october"
|
|
| "november"
|
|
| "december"
|
|
|
|
export type DateTimeValues = {
|
|
year: number,
|
|
month: number | ShortMonth | Month,
|
|
day: number,
|
|
hour: number,
|
|
minute: number,
|
|
second: number,
|
|
millisecond: number,
|
|
}
|
|
|
|
export type DateTime = {
|
|
unixTimestamp: number,
|
|
unixTimestampMillis: number,
|
|
|
|
toIsoDate: (self: DateTime) -> string,
|
|
toLocalTime: (self: DateTime) -> DateTimeValues,
|
|
toUniversalTime: (self: DateTime) -> DateTimeValues,
|
|
formatTime: (
|
|
self: DateTime,
|
|
timezone: Timezone,
|
|
formatString: string,
|
|
locale: Locale
|
|
) -> string,
|
|
}
|
|
|
|
--[=[
|
|
@class DateTime
|
|
|
|
Built-in library for date & time manipulation
|
|
|
|
### Example usage
|
|
|
|
```lua
|
|
local DateTime = require("@lune/datetime")
|
|
```
|
|
]=]
|
|
local dateTime = {}
|
|
|
|
--[=[
|
|
@within DateTime
|
|
|
|
Returns a `DateTime` representing the current moment in time.
|
|
|
|
@return A DateTime instance
|
|
]=]
|
|
function dateTime.now(): DateTime
|
|
return nil :: any
|
|
end
|
|
|
|
--[=[
|
|
@within DateTime
|
|
|
|
Returns a new `DateTime` object from the given Unix timestamp, or
|
|
the number of **seconds** since January 1st, 1970 at 00:00 (UTC).
|
|
|
|
@param unixTimestamp The number of seconds or milliseconds (or both) since the Unix epoch. The fraction part of a float denotes the milliseconds.
|
|
@return A DateTime instance
|
|
]=]
|
|
function dateTime.fromUnixTimestamp(unixTimestamp: number?): DateTime
|
|
return nil :: any
|
|
end
|
|
|
|
function dateTime.fromUniversalTime(dateTime: DateTimeValues?): DateTime
|
|
return nil :: any
|
|
end
|
|
|
|
function dateTime.fromLocalTime(dateTime: DateTimeValues?): DateTime
|
|
return nil :: any
|
|
end
|
|
|
|
function dateTime.fromIsoDate(iso_date: string): DateTime?
|
|
return nil :: any
|
|
end
|
|
|
|
return dateTime
|