方法
GLibTimeValto_iso8601
已弃用: 2.62 自: 2.12
声明 [源代码]
gchar*
g_time_val_to_iso8601 (
GTimeVal* time_
)
描述 [源代码]
将 time_
转换为相对于协调世界时(《UTC》)的 RFC 3339 编码字符串,这是 ISO 8601 所允许的多种格式之一。
ISO 8601 允许大量日期/时间格式,带有或不带标点和可选元素。此函数返回的格式是完整的日期和时间,包含可选的标点符号,UTC 时区用“Z”表示,只有当 tv_usec
部分不为零时才包含,即“YYYY-MM-DDTHH:MM:SSZ”或“YYYY-MM-DDTHH:MM:SS.fffffZ”。
这相当于由 RFC 3339 定义的因特网日期/时间格式,以及由 W3C 注释 日期和时间格式 定义的两种最精确格式之一。这两个文档都是 ISO 8601 的配置文件。
如果需要其他 ISO 8601 格式变体,请使用 g_date_time_format()
或 g_strdup_printf()
。
如果 time_
表示的日期太大,不能放入 struct tm
,则返回 NULL
。这是平台相关的。请注意,由于 GTimeVal
将秒数存储为 glong
,在 32 位系统上它可能会遇到 2038 年问题。因此,自 GLib 2.62 以来,此函数已被弃用。使用以下功能可以获得等效的功能
GDateTime *dt = g_date_time_new_from_unix_utc (time_val);
iso8601_string = g_date_time_format_iso8601 (dt);
g_date_time_unref (dt);
g_time_val_to_iso8601()
的返回值自 GLib 2.54 起为可空;在此之前,GLib 会在相同条件下崩溃。
自:2.12
自:2.62
请使用 g_date_time_format_iso8601(dt)
代替 GTimeVal
,因为它不是 2038 年安全的。