Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Time

繼承: Object

用於處理時間資料的單例。

說明

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 get_unix_time_from_system() method always uses UTC as it returns the seconds passed since the Unix epoch.

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 get_ticks_usec() or get_ticks_msec() for precise time calculation instead, since they are guaranteed to be monotonic (i.e. never decrease).

方法

Dictionary

get_date_dict_from_system(utc: bool = false) const

Dictionary

get_date_dict_from_unix_time(unix_time_val: int) const

String

get_date_string_from_system(utc: bool = false) const

String

get_date_string_from_unix_time(unix_time_val: int) const

Dictionary

get_datetime_dict_from_datetime_string(datetime: String, weekday: bool) const

Dictionary

get_datetime_dict_from_system(utc: bool = false) const

Dictionary

get_datetime_dict_from_unix_time(unix_time_val: int) const

String

get_datetime_string_from_datetime_dict(datetime: Dictionary, use_space: bool) const

String

get_datetime_string_from_system(utc: bool = false, use_space: bool = false) const

String

get_datetime_string_from_unix_time(unix_time_val: int, use_space: bool = false) const

String

get_offset_string_from_offset_minutes(offset_minutes: int) const

int

get_ticks_msec() const

int

get_ticks_usec() const

Dictionary

get_time_dict_from_system(utc: bool = false) const

Dictionary

get_time_dict_from_unix_time(unix_time_val: int) const

String

get_time_string_from_system(utc: bool = false) const

String

get_time_string_from_unix_time(unix_time_val: int) const

Dictionary

get_time_zone_from_system() const

int

get_unix_time_from_datetime_dict(datetime: Dictionary) const

int

get_unix_time_from_datetime_string(datetime: String) const

float

get_unix_time_from_system() const


列舉

enum Month: 🔗

Month MONTH_JANUARY = 1

一月份,使用數字 01 表示。

Month MONTH_FEBRUARY = 2

二月份,使用數字 02 表示。

Month MONTH_MARCH = 3

三月份,使用數字 03 表示。

Month MONTH_APRIL = 4

四月份,使用數字 04 表示。

Month MONTH_MAY = 5

五月份,使用數字 05 表示。

Month MONTH_JUNE = 6

六月份,使用數字 06 表示。

Month MONTH_JULY = 7

七月份,使用數字 07 表示。

Month MONTH_AUGUST = 8

八月份,使用數字 08 表示。

Month MONTH_SEPTEMBER = 9

九月份,使用數字 09 表示。

Month MONTH_OCTOBER = 10

十月份,使用數字 10 表示。

Month MONTH_NOVEMBER = 11

十一月份,使用數字 11 表示。

Month MONTH_DECEMBER = 12

十二月份,使用數字 12 表示。


enum Weekday: 🔗

Weekday WEEKDAY_SUNDAY = 0

星期日,使用數字 0 表示。

Weekday WEEKDAY_MONDAY = 1

星期一,使用數字 1 表示。

Weekday WEEKDAY_TUESDAY = 2

星期二,使用數字 2 表示。

Weekday WEEKDAY_WEDNESDAY = 3

星期三,使用數字 3 表示。

Weekday WEEKDAY_THURSDAY = 4

星期四,使用數字 4 表示。

Weekday WEEKDAY_FRIDAY = 5

星期五,使用數字 5 表示。

Weekday WEEKDAY_SATURDAY = 6

星期六,使用數字 6 表示。


方法說明

Dictionary get_date_dict_from_system(utc: bool = false) const 🔗

以字典的形式返回目前時間,包含的鍵為:yearmonthdayweekday

utcfalse 時,返回的是系統的本地時間,否則為 UTC 時間。


Dictionary get_date_dict_from_unix_time(unix_time_val: int) const 🔗

將給定的 Unix 時間戳記轉換為字典,包含的鍵為:yearmonthdayweekday


String get_date_string_from_system(utc: bool = false) const 🔗

以 ISO 8601 日期字串的形式返回目前日期(YYYY-MM-DD)。

utcfalse 時,返回的是系統的本地時間,否則為 UTC 時間。


String get_date_string_from_unix_time(unix_time_val: int) const 🔗

將給定的 Unix 時間戳記轉換為 ISO 8601 日期字串(YYYY-MM-DD)。


Dictionary get_datetime_dict_from_datetime_string(datetime: String, weekday: bool) const 🔗

Converts the given ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS) to a dictionary of keys: year, month, day, weekday, hour, minute, and second.

If weekday is false, then the weekday entry is excluded (the calculation is relatively expensive).

Note: Any decimal fraction in the time string will be ignored silently.


Dictionary get_datetime_dict_from_system(utc: bool = false) const 🔗

以字典形式返回目前日期,包含的鍵為:yearmonthdayweekdayhourminutesecond 以及 dst(夏令時,Daylight Savings Time)。


Dictionary get_datetime_dict_from_unix_time(unix_time_val: int) const 🔗

將給定的 Unix 時間戳記轉換為字典,包含的鍵為:yearmonthdayweekdayhourminute、和 second

如果 Unix 時間戳記是目前時間,則返回的字典值將與 get_datetime_dict_from_system() 相同,夏令時除外,因為它無法根據紀元確定。


String get_datetime_string_from_datetime_dict(datetime: Dictionary, use_space: bool) const 🔗

將給定的時間值字典轉換為 ISO 8601 日期和時間字串(YYYY-MM-DDTHH:MM:SS)。

給定的字典可以包含以下鍵:yearmonthdayhourminutesecond。其他的記錄(包括 dst)都會被忽略。

字典為空時將返回 0。如果省略了部分鍵,預設使用 Unix 紀元時間戳記 0(1970-01-01 的 00:00:00)的對應部分。

use_spacetrue 時,將使用空格代替中間的字母 T。


String get_datetime_string_from_system(utc: bool = false, use_space: bool = false) const 🔗

以 ISO 8601 日期和時間字串的形式返回目前日期和時間(YYYY-MM-DDTHH:MM:SS)。

utcfalse 時,返回的是系統的本地時間,否則為 UTC 時間。

use_spacetrue 時,將使用空格代替中間的字母 T。


String get_datetime_string_from_unix_time(unix_time_val: int, use_space: bool = false) const 🔗

將給定的 Unix 時間戳記轉換為 ISO 8601 日期和時間字串(YYYY-MM-DDTHH:MM:SS)。

use_spacetrue 時,將使用空格代替中間的字母 T。


String get_offset_string_from_offset_minutes(offset_minutes: int) const 🔗

將給定的時區偏移分鐘數轉換為時區偏移字串。例如,-480 返回 "-08:00"、345 返回 "+05:45"、0 返回 "+00:00"。


int get_ticks_msec() const 🔗

返回從引擎啟動開始所經過的時間,單位為毫秒。

始終為正數或 0,使用 64 位值(會在約 5 億年後繞回)。


int get_ticks_usec() const 🔗

返回從引擎啟動開始所經過的時間,單位為微秒。

始終為正數或 0,使用 64 位值(會在約 50 萬年後繞回)。


Dictionary get_time_dict_from_system(utc: bool = false) const 🔗

以字典的形式返回目前時間,包含的鍵為:hourminutesecond

utcfalse 時,返回的是系統的本地時間,否則為 UTC 時間。


Dictionary get_time_dict_from_unix_time(unix_time_val: int) const 🔗

將給定的時間轉換為字典,包含的鍵為:時 hour、分 minute、秒 second


String get_time_string_from_system(utc: bool = false) const 🔗

以 ISO 8601 時間字串的形式返回目前時間(HH:MM:SS)。

utcfalse 時,返回的是系統的本地時間,否則為 UTC 時間。


String get_time_string_from_unix_time(unix_time_val: int) const 🔗

將給定的 Unix 時間戳記轉換為 ISO 8601 時間字串(HH:MM:SS)。


Dictionary get_time_zone_from_system() const 🔗

Returns the current time zone as a dictionary of keys: bias and name.

  • bias is the offset from UTC in minutes, since not all time zones are multiples of an hour from UTC.

  • name is the localized name of the time zone, according to the OS locale settings of the current user.


int get_unix_time_from_datetime_dict(datetime: Dictionary) const 🔗

將時間值字典轉換為 Unix 時間戳記。

給定的字典可以包含以下鍵:yearmonthdayhourminutesecond。其他的記錄(包括 dst)都會被忽略。

字典為空時將返回 0。如果省略了部分鍵,預設使用 Unix 紀元時間戳記 0(1970-01-01 的 00:00:00)的對應部分。

你可以將 get_datetime_dict_from_unix_time() 的輸出直接傳給本函式,得到的就是最初的輸入。

注意:Unix 時間戳記通常是 UTC 的。本方法不會做任何時區轉換,所以時間戳記的時區與給定的日期時間字典相同。


int get_unix_time_from_datetime_string(datetime: String) const 🔗

將給定的 ISO 8601 日期和/或時間字串轉換為 Unix 時間戳記。字串中可以只包含日期、只包含時間,也可以兩者都包含。

注意:Unix 時間戳記通常是 UTC 的。本方法不會做任何時區轉換,所以時間戳記的時區與給定的日期時間字串相同。

注意:時間字串中的小數會被靜默忽略。


float get_unix_time_from_system() const 🔗

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. The Unix timestamp is the number of seconds passed since 1970-01-01 at 00:00:00, the Unix epoch.

Note: Unlike other methods that use integer timestamps, this method returns the timestamp as a float for sub-second precision.