方法

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 年安全的。

返回值

类型: gchar*

包含 ISO 8601 日期的新分配字符串,或 NULL(如果 time_ 大于可容纳的范围)。

方法调用者拥有返回数据,并负责释放它。
返回值可以为 NULL
该值是 NUL 终止的 UTF-8 字符串。