函数
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
的值,但如果 identifier
为 NULL
,则在 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 版本起可用。
返回值
类型: GTimeZone
所需时区,或在失败时为 NULL
。
函数的调用者拥有数据,并负责释放它。 |
返回值可以是 NULL 。 |