因为indicator-datetime中时间都是用glib的gtime来控制的。阅读时都不太理解是什么意思。国内资料里也没找到什么有用的信息。Google的事耽误了点时间,花时间总结下Gtime*(GTimeZone,GDateTime)。
GTimeZone
#include <glib.h> GTimeZone; void g_time_zone_unref (GTimeZone *tz); GTimeZone * g_time_zone_ref (GTimeZone *tz); GTimeZone * g_time_zone_new (const gchar *identifier); GTimeZone * g_time_zone_new_local (void); GTimeZone * g_time_zone_new_utc (void); enum GTimeType; gint g_time_zone_find_interval (GTimeZone *tz, GTimeType type, gint64 time_); gint g_time_zone_adjust_time (GTimeZone *tz, GTimeType type, gint64 *time_); const gchar * g_time_zone_get_abbreviation (GTimeZone *tz, gint interval); gint32 g_time_zone_get_offset (GTimeZone *tz, gint interval); gboolean g_time_zone_is_dst (GTimeZone *tz, gint interval);
GtimeZone是一个时区的结构,一个时区会有若干区间。每一个有一个缩写描述,一个偏移UTC(协调世界时)和一个是否受夏时制影响的标志。每一个时区结构至少有一个区间,区间0
每一个UTC时间都只有一个区间,但是一个当地时间可能会有几个间隔构成(因为夏时制产生的不连续)