结构
GLibDateTime
自:2.26
描述 [源]
struct GDateTime {
/* No available fields */
}
GDateTime
是一个结构,它将一个公历日期和时间合并到一个单一的结构中。
GDateTime
提供了许多转换和方法来处理日期和时间。时间精度可达微秒级别,时间范围(前溯)从 0001-01-01 00:00:00 到 9999-12-31 23:59:59.999999。GDateTime
遵循 POSIX 时间,因为它忽略闰秒。
GDateTime
是一个不可变对象;创建之后便无法再对其修改。所有修改器都会创建一个新的 GDateTime
。此类函数几乎都会因为日期或时间超范围而失败,在此情况下,将返回 NULL
。
GDateTime
为引用计数:通过调用 g_date_time_ref()
增加引用计数,通过调用 g_date_time_unref()
减少引用计数。当引用计数降至 0 时,将释放由 GDateTime
结构分配的资源。
API
的许多部分可能会产生非明显的结果。例如,向 1 月 31 日添加两个月将生成 3 月 31 日,而添加一个月再添加一个月将生成 3 月 28 日或 3 月 29 日。还需要注意的是,添加 24 小时并不总是与添加一天相同(因为包含夏令时转换的日期长度为 23 小时或 25 小时)。
自 2.26 起可用
构造函数
g_date_time_new_from_iso8601
根据给定的 ISO 8601 格式化的字符串 text
创建一个 GDateTime
。支持格式为 <date><sep><time><tz>
的 ISO 8601 字符串,其中包含如下所示 RFC 3339 中提到的某些扩展。
自 2.56 起
实例方法
g_date_time_difference
计算 `end` 与 `begin` 之间的时差。返回的 `GTimeSpan` 实际上是 `end` - `begin`(例如:如果第一个参数较大,则为正)。
自:2.26
g_date_time_get_week_of_year
返回包含 `datetime` 的星期的 ISO 8601 周数。ISO 8601 周数对每一天(从星期一到星期日)来说都是相同的。这可能会产生一些不寻常的结果(如下所述)。
自:2.26