Time
A singleton for working with time data.
Time.swift:20class Time
The Time singleton allows converting time between various formats and also getting time information from the system.
This class conforms with as many of the ISO 8601 standards as possible. All dates follow the Proleptic Gregorian calendar. As such, the day before 1582-10-15
is 1582-10-14
, not 1582-10-04
. The year before 1 AD (aka 1 BC) is number 0
, with the year before that (2 BC) being -1
, etc.
Conversion methods assume “the same timezone”, and do not handle timezone conversions or DST automatically. Leap seconds are also not handled, they must be done manually if desired. Suffixes such as “Z” are not handled, you need to strip them away manually.
When getting time information from the system, the time can either be in the local timezone or UTC depending on the utc
parameter. However, the getUnixTimeFromSystem
method always returns the time in UTC.
Important: The _from_system
methods use the system clock that the user can manually set. Never use this method for precise time calculation since its results are subject to automatic adjustments by the user or the operating system. Always use getTicksUsec
or getTicksMsec
for precise time calculation instead, since they are guaranteed to be monotonic (i.e. never decrease).
Superclasses
class Object
Base class for all other classes in the engine.
Citizens in SwiftGodot
Conformances
protocol CustomStringConvertible
A type with a customized textual representation.
protocol Equatable
A type that can be compared for value equality.
protocol Hashable
A type that can be hashed into a
Hasher
to produce an integer hash value.protocol Identifiable<ID>
A class of types whose instances hold the value of an entity with stable identity.
protocol VariantRepresentable
Types that conform to VariantRepresentable can be stored directly in
Variant
with no conversion. These include all of the Variant types from Godot (for exampleGString
,Rect
,Plane
), Godot objects (those that subclass SwiftGodot.Object) as well as the built-in Swift types UInt8, Int64 and Double.protocol VariantStorable
Types that conform to VariantStorable can be stored in a Variant and can be extracted back out of a Variant.
Types
Type members
static func getDateDictFromSystem(utc: Bool
) -> GDictionary Returns the current date as a dictionary of keys:
year
,month
,day
, andweekday
.static func getDateDictFromUnixTime(unixTimeVal: Int
) -> GDictionary Converts the given Unix timestamp to a dictionary of keys:
year
,month
,day
, andweekday
.static func getDateStringFromSystem(utc: Bool
) -> String Returns the current date as an ISO 8601 date string (YYYY-MM-DD).
static func getDateStringFromUnixTime(unixTimeVal: Int
) -> String Converts the given Unix timestamp to an ISO 8601 date string (YYYY-MM-DD).
static func getDatetimeDictFromDatetimeString(datetime: String, weekday: Bool
) -> GDictionary Converts the given ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS) to a dictionary of keys:
year
,month
,day
, [code skip-lint]weekday,
hour,
minute, and
second`.static func getDatetimeDictFromSystem(utc: Bool
) -> GDictionary Returns the current date as a dictionary of keys:
year
,month
,day
,weekday
,hour
,minute
,second
, anddst
(Daylight Savings Time).static func getDatetimeDictFromUnixTime(unixTimeVal: Int
) -> GDictionary Converts the given Unix timestamp to a dictionary of keys:
year
,month
,day
,weekday
,hour
,minute
, andsecond
.static func getDatetimeStringFromDatetimeDict(datetime: GDictionary, useSpace: Bool
) -> String Converts the given dictionary of keys to an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS).
static func getDatetimeStringFromSystem(utc: Bool, useSpace: Bool
) -> String Returns the current date and time as an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS).
static func getDatetimeStringFromUnixTime(unixTimeVal: Int, useSpace: Bool
) -> String Converts the given Unix timestamp to an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS).
static func getOffsetStringFromOffsetMinutes(Int
) -> String Converts the given timezone offset in minutes to a timezone offset string. For example, -480 returns “-08:00”, 345 returns “+05:45”, and 0 returns “+00:00”.
static func getTicksMsec(
) -> UInt Returns the amount of time passed in milliseconds since the engine started.
static func getTicksUsec(
) -> UInt Returns the amount of time passed in microseconds since the engine started.
static func getTimeDictFromSystem(utc: Bool
) -> GDictionary Returns the current time as a dictionary of keys:
hour
,minute
, andsecond
.static func getTimeDictFromUnixTime(unixTimeVal: Int
) -> GDictionary Converts the given time to a dictionary of keys:
hour
,minute
, andsecond
.static func getTimeStringFromSystem(utc: Bool
) -> String Returns the current time as an ISO 8601 time string (HH:MM:SS).
static func getTimeStringFromUnixTime(unixTimeVal: Int
) -> String Converts the given Unix timestamp to an ISO 8601 time string (HH:MM:SS).
static func getTimeZoneFromSystem(
) -> GDictionary Returns the current time zone as a dictionary of keys:
bias
andname
.static func getUnixTimeFromDatetimeDict(datetime: GDictionary
) -> Int Converts a dictionary of time values to a Unix timestamp.
static func getUnixTimeFromDatetimeString(datetime: String
) -> Int Converts the given ISO 8601 date and/or time string to a Unix timestamp. The string can contain a date only, a time only, or both.
static func getUnixTimeFromSystem(
) -> Double Returns the current Unix timestamp in seconds based on the system time in UTC. This method is implemented by the operating system and always returns the time in UTC.
class var godotClassName: StringName