函数

GLibDateTimenew_from_iso8601

自:2.56

声明 [源]

GDateTime*
g_date_time_new_from_iso8601 (
  const gchar* text,
  GTimeZone* default_tz
)

描述 [源]

创建一个与给定的 ISO 8601 格式的字符串 text 对应的 GDateTime。支持以下格式的 ISO 8601 字符串:<date><sep><time><tz>,以及下面提到的从 RFC 3339 补充的一些扩展。

注意,由于 GDateTime 对“闰秒”不敏感”,ISO-8601 字符串中的闰秒信息将被忽略,因此一个 23:59:60 的时间将被解析为 23:59:59

<sep> 是分隔符,可以是 ‘T’、‘t’ 或空格。后两个分隔符是来自 RFC 3339 的扩展。

<date> 的形式如下

  • YYYY-MM-DD - 年/月/日,例如:2016-08-24。
  • YYYYMMDD - 与上述相同,不带分隔符。
  • YYYY-DDD - 辨序日,其中 DDD 为从 001 到 366,例如:2016-237。
  • YYYYDDD - 与上述相同,不带分隔符。
  • YYYY-Www-D - 周日,其中 ww 为从 01 到 52,D 为 1-7,例如:2016-W34-3。
  • YYYYWwwD - 与上述相同,不带分隔符。

<time> 的形式如下

  • hh:mm:ss(.sss) - 小时、分钟、秒(亚秒),例如:22:10:42.123。
  • hhmmss(.sss) - 与上述相同,不带分隔符。

<tz> 是可选的时间区后缀,形式如下

  • Z - UTC
  • +hh:mm-hh:mm - 从 UTC 的时和分钟偏移,例如:+12:00。
  • +hh-hh - 从 UTC 的时针偏移,例如:+12。

如果 text 中没有提供时间区,它必须在 default_tz 中提供(否则该字段将被忽略)。

如果 text 不是一个有效的 ISO 8601 格式字符串,此调用可能会失败(返回 NULL)。

当您完成操作时,应该通过调用 g_date_time_unref() 释放返回值。

自从:2.56

参数

text

类型: const gchar*

一个 ISO 8601 格式的时钟字符串。

数据由函数的调用者保留。
值是一个以 NUL 结尾的 UTF-8 字符串。
default_tz

类型: GTimeZone

如果文本中不包含时区,则使用此 GTimeZone,或不为 NULL

该参数可以是 NULL
数据由函数的调用者保留。

返回值

类型: GDateTime

一个新的 GDateTime,或 NULL

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