time: add documentation for remaining time-related functions and ISO 8601 parsing (#23867)

This commit is contained in:
Noa Santo 2025-03-05 13:11:19 +01:00 committed by GitHub
parent 2dc5f68894
commit a74f3171db
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 10 additions and 0 deletions

View File

@ -19,6 +19,11 @@ pub fn parse(s string) Time {
return res
}
// parse_iso8601 parses the ISO 8601 time format yyyy-MM-ddTHH:mm:ss.dddddd+dd:dd as local time.
// The fraction part is difference in milli seconds, and the last part is offset from UTC time.
// Both can be +/- HH:mm .
// See https://en.wikipedia.org/wiki/ISO_8601 .
// Remarks: not all of ISO 8601 is supported; checks and support for leapseconds should be added.
pub fn parse_iso8601(s string) !Time {
return parse(s)
}

View File

@ -1,5 +1,6 @@
module time
// now returns the current local time.
pub fn now() Time {
mut res := Time{}
#let date = new Date()
@ -15,6 +16,7 @@ pub fn now() Time {
return res
}
// utc returns the current UTC time.
pub fn utc() Time {
mut res := Time{}
#let date = new Date()
@ -61,6 +63,8 @@ fn time_with_unix(t Time) Time {
return res
}
// ticks returns the number of milliseconds since the UNIX epoch.
// // On Windows ticks returns the number of milliseconds elapsed since system start.
pub fn ticks() i64 {
t := i64(0)
#t.val = BigInt(new Date().getTime())

View File

@ -84,6 +84,7 @@ pub enum FormatDelimiter {
no_delimiter
}
// Time.new static method returns a time struct with the calculated Unix time.
pub fn Time.new(t Time) Time {
return time_with_unix(t)
}