函数

GLibTimeZonenew_identifier

自:2.68

声明 [源]

GTimeZone*
g_time_zone_new_identifier (
  const gchar* identifier
)

描述 [源]

创建与 identifier 对应的 GTimeZone。如果无法解析或加载 identifier,则返回 NULL

identifier 可以是 RFC3339/ISO 8601 时间偏移或可以作为 TZ 环境变量有效值的任何内容(包括 NULL)。

在 Windows 上,identifier 还可以是标准时间的时区未本地化的名称,例如“太平洋标准时间”。

有效的 RFC3339 时间偏移是 "Z"(对于 UTC)或 "±hh:mm"ISO 8601 还指定了 "±hhmm""±hh"。偏移量是添加到协调世界时(UTC)以获取当地时间的时间值。

UNIX 上,TZ 环境变量通常对应于 zoneinfo 数据库中的文件名、指向文件的其他位置的绝对路径,或“std offset [dst [offset],start[/time],end[/time]]”格式(POSIX)中的字符串。规范中不包含空格。标准时间和夏令时区名称必须由三个或更多字母组成。偏移量是添加到本地时间以获取协调世界时(UTC)的时间值,应该是 "[±]hh[[:]mm[:ss]]"。日期可以是 "Jn"(Julian 天,n 介于 1 到 365 之间,不包括闰年),"n"(基于零的 Julian 天,n 介于 0 到 365 之间)或 "Mm.w.d"(月 m(1 <= m <= 12)的周 w(1 <= w <= 5)的日 d(0 <= d <= 6),日 0 是星期日)。时间是本地墙时钟时间,默认是 02:00:00。

在 Windows 上,使用“tzn[+|–]hh[:mm[:ss]][dzn)”格式,但也接受 POSIX 格式。Windows 格式使用所有时区的 US 规则;夏令时比标准时间慢 60 分钟,日期和时间来自太平洋标准时间。偏移量是添加到本地时间以获取协调世界时(UTC)的时间值。

g_time_zone_new_local() 使用 TZ 环境变量的值调用此函数。此函数本身独立于 TZ 的值,但如果 identifierNULL,则在 UNIX 上将参考 /etc/localtime 以发现正确的时间区,或者在 Windows 上将咨询注册表或使用 GetTimeZoneInformation() 获取本地时区。

如果不可用,则只从 TZ 环境变量或其他方式获取时区规则,则它们将计算从 1900 年到 2037 年。如果规则的 最大年份可用并且大于 2037 年,则将使用它。

请参阅 RFC3339 §5.6 获取有效的 RFC3339 时间偏移(即 time-offset 扩展)的精确定义,以及 ISO 8601 的有效时间偏移完整列表。有关 TZ 环境变量的可能值,请参阅 GNU C 库手册。有关 Windows 上的时区列表,请参阅 Microsoft 时区索引值

使用完毕后,您应通过调用 g_time_zone_unref() 释放返回值。

自 2.68 版本起可用。

参数

标识符

类型: const gchar*

时区标识符。

参数可以是 NULL
数据由函数的调用者拥有。
该值是一个以 NUL 结尾的 UTF-8 字符串。

返回值

类型: GTimeZone

所需时区,或在失败时为 NULL

函数的调用者拥有数据,并负责释放它。
返回值可以是 NULL