简介
时间、日期和时区操作函数。
数据结构
时间、日期、时区的数据结构如下。
struct GDate {
guint julian_days : 32; // 儒略日
guint julian : 1; /* 是否为儒略日格式 */
guint dmy : 1; /* 是否为dmy格式 */
/* DMY 成员变量 年月日 */
guint day : 6;
guint month : 4;
guint year : 16;
};
typedef gint32 GTime; // 时间
typedef guint8 GDateDay; //日
enum GDateMonth // 月
typedef guint16 GDateYear; //年
enum GDateWeekday // 星期
typedef struct _GTimeZone GTimeZone; // 时区
typedef struct _GDateTime GDateTime; // 日期时间对象
typedef gint64 GTimeSpan; // 时间间隔
函数列表
void g_get_current_time ()
void g_usleep ()
void g_time_val_add ()
gboolean g_time_val_from_iso8601 ()
gchar * g_time_val_to_iso8601 ()
gint64 g_get_monotonic_time ()
gint64 g_get_real_time ()
GDate * g_date_new ()
GDate * g_date_new_dmy ()
GDate * g_date_new_julian ()
void g_date_clear ()
void g_date_free ()
GDate * g_date_copy ()
void g_date_set_day ()
void g_date_set_month ()
void g_date_set_year ()
void g_date_set_dmy ()
void g_date_set_julian ()
void g_date_set_time ()
void g_date_set_time_t ()
void g_date_set_time_val ()
void g_date_set_parse ()
void g_date_add_days ()
void g_date_subtract_days ()
void g_date_add_months ()
void g_date_subtract_months ()
void g_date_add_years ()
void g_date_subtract_years ()
gint g_date_days_between ()
gint g_date_compare ()
void g_date_clamp ()
void g_date_order ()
GDateDay g_date_get_day ()
GDateMonth g_date_get_month ()
GDateYear g_date_get_year ()
guint32 g_date_get_julian ()
GDateWeekday g_date_get_weekday ()
guint g_date_get_day_of_year ()
guint8 g_date_get_days_in_month ()
gboolean g_date_is_first_of_month ()
gboolean g_date_is_last_of_month ()
gboolean g_date_is_leap_year ()
guint g_date_get_monday_week_of_year ()
guint8 g_date_get_monday_weeks_in_year ()
guint g_date_get_sunday_week_of_year ()
guint8 g_date_get_sunday_weeks_in_year ()
guint g_date_get_iso8601_week_of_year ()
gsize g_date_strftime ()
void g_date_to_struct_tm ()
gboolean g_date_valid ()
gboolean g_date_valid_day ()
gboolean g_date_valid_month ()
gboolean g_date_valid_year ()
gboolean g_date_valid_dmy ()
gboolean g_date_valid_julian ()
gboolean g_date_valid_weekday ()
void g_time_zone_unref ()
GTimeZone * g_time_zone_ref ()
GTimeZone * g_time_zone_new ()
GTimeZone * g_time_zone_new_local ()
GTimeZone * g_time_zone_new_utc ()
gint g_time_zone_find_interval ()
gint g_time_zone_adjust_time ()
const gchar * g_time_zone_get_abbreviation ()
gint32 g_time_zone_get_offset ()
gboolean g_time_zone_is_dst ()
void g_date_time_unref ()
GDateTime * g_date_time_ref ()
GDateTime * g_date_time_new_now ()
GDateTime * g_date_time_new_now_local ()
GDateTime * g_date_time_new_now_utc ()
GDateTime * g_date_time_new_from_unix_local ()
GDateTime * g_date_time_new_from_unix_utc ()
GDateTime * g_date_time_new_from_timeval_local ()
GDateTime * g_date_time_new_from_timeval_utc ()
GDateTime * g_date_time_new_from_iso8601 ()
GDateTime * g_date_time_new ()
GDateTime * g_date_time_new_local ()
GDateTime * g_date_time_new_utc ()
GDateTime * g_date_time_add ()
GDateTime * g_date_time_add_years ()
GDateTime * g_date_time_add_months ()
GDateTime * g_date_time_add_weeks ()
GDateTime * g_date_time_add_days ()
GDateTime * g_date_time_add_hours ()
GDateTime * g_date_time_add_minutes ()
GDateTime * g_date_time_add_seconds ()
GDateTime * g_date_time_add_full ()
gint g_date_time_compare ()
GTimeSpan g_date_time_difference ()
guint g_date_time_hash ()
gboolean g_date_time_equal ()
void g_date_time_get_ymd ()
gint g_date_time_get_year ()
gint g_date_time_get_month ()
gint g_date_time_get_day_of_month ()
gint g_date_time_get_week_numbering_year ()
gint g_date_time_get_week_of_year ()
gint g_date_time_get_day_of_week ()
gint g_date_time_get_day_of_year ()
gint g_date_time_get_hour ()
gint g_date_time_get_minute ()
gint g_date_time_get_second ()
gint g_date_time_get_microsecond ()
gdouble g_date_time_get_seconds ()
gint64 g_date_time_to_unix ()
gboolean g_date_time_to_timeval ()
GTimeSpan g_date_time_get_utc_offset ()
const gchar * g_date_time_get_timezone_abbreviation ()
gboolean g_date_time_is_daylight_savings ()
GDateTime * g_date_time_to_timezone ()
GDateTime * g_date_time_to_local ()
GDateTime * g_date_time_to_utc ()
gchar * g_date_time_format ()
函数功能分类
// 休眠微秒 1s=1000ms(毫秒)=1000*1000us(微秒)
void g_usleep ()
void g_time_val_add ()
gboolean g_time_val_from_iso8601 ()
gchar * g_time_val_to_iso8601 ()
gint64 g_get_monotonic_time ()
// 获取当前时间,g_get_real_time返回Unix时间戳,更常用
gint64 g_get_real_time ()
void g_get_current_time ()
// 创建清空销毁拷贝GDate对象
GDate * g_date_new ()
GDate * g_date_new_dmy ()
GDate * g_date_new_julian ()
void g_date_clear ()
void g_date_free ()
GDate * g_date_copy ()
// 设置时间及日期
void g_date_set_day ()
void g_date_set_month ()
void g_date_set_year ()
void g_date_set_dmy ()
void g_date_set_julian ()
void g_date_set_time ()
void g_date_set_time_t ()
void g_date_set_time_val ()
// 解析字符串格式的时间日期到GDate
void g_date_set_parse ()
// 日期向前或向后偏移,带有智能检测,使日期仍为合法日期,偏移之后如果日期不对,则会自动修正,如,2月29日增加一年,若增加后不是闰年,则会调整到2月28日。
void g_date_add_days ()
void g_date_subtract_days ()
void g_date_add_months ()
void g_date_subtract_months ()
void g_date_add_years ()
void g_date_subtract_years ()
// 计算两个日期间的天数
gint g_date_days_between ()
// 两个日期比较
gint g_date_compare ()
// 若X在[low,high]范围内,则等于X;如果X小于low,则返回low;如果X大于high,则返回high
void g_date_clamp ()
// 将两个日期较小的放在前面
void g_date_order ()
// 以下函数通过字面意思也可理解
GDateDay g_date_get_day ()
GDateMonth g_date_get_month ()
GDateYear g_date_get_year ()
guint32 g_date_get_julian ()
GDateWeekday g_date_get_weekday ()
guint g_date_get_day_of_year ()
guint8 g_date_get_days_in_month ()
gboolean g_date_is_first_of_month ()
gboolean g_date_is_last_of_month ()
gboolean g_date_is_leap_year ()
guint g_date_get_monday_week_of_year ()
guint8 g_date_get_monday_weeks_in_year ()
guint g_date_get_sunday_week_of_year ()
guint8 g_date_get_sunday_weeks_in_year ()
guint g_date_get_iso8601_week_of_year ()
// 格式转换
gsize g_date_strftime ()
void g_date_to_struct_tm ()
判断日期是否合法
gboolean g_date_valid ()
gboolean g_date_valid_day ()
gboolean g_date_valid_month ()
gboolean g_date_valid_year ()
gboolean g_date_valid_dmy ()
gboolean g_date_valid_julian ()
gboolean g_date_valid_weekday ()
// 时区相关函数
void g_time_zone_unref ()
GTimeZone * g_time_zone_ref ()
GTimeZone * g_time_zone_new ()
GTimeZone * g_time_zone_new_local ()
GTimeZone * g_time_zone_new_utc ()
gint g_time_zone_find_interval ()
gint g_time_zone_adjust_time ()
const gchar * g_time_zone_get_abbreviation ()
gint32 g_time_zone_get_offset ()
gboolean g_time_zone_is_dst ()
// GDateTime对象的引用和解引用
void g_date_time_unref ()
GDateTime * g_date_time_ref ()
// 创建一个GDateTime对象
GDateTime * g_date_time_new_now ()
GDateTime * g_date_time_new_now_local ()
GDateTime * g_date_time_new_now_utc ()
GDateTime * g_date_time_new_from_unix_local ()
GDateTime * g_date_time_new_from_unix_utc ()
GDateTime * g_date_time_new_from_timeval_local ()
GDateTime * g_date_time_new_from_timeval_utc ()
GDateTime * g_date_time_new_from_iso8601 ()
GDateTime * g_date_time_new ()
GDateTime * g_date_time_new_local ()
GDateTime * g_date_time_new_utc ()
// 修改一个GDateTime对象,将其值增加
GDateTime * g_date_time_add ()
GDateTime * g_date_time_add_years ()
GDateTime * g_date_time_add_months ()
GDateTime * g_date_time_add_weeks ()
GDateTime * g_date_time_add_days ()
GDateTime * g_date_time_add_hours ()
GDateTime * g_date_time_add_minutes ()
GDateTime * g_date_time_add_seconds ()
GDateTime * g_date_time_add_full ()
// 时间日期比较
gint g_date_time_compare ()
// 计算两个GDateTime对象之间的不同
GTimeSpan g_date_time_difference ()
// hash相关的两个函数
guint g_date_time_hash ()
gboolean g_date_time_equal ()
// 从GDateTime中获取相关值
void g_date_time_get_ymd ()
gint g_date_time_get_year ()
gint g_date_time_get_month ()
gint g_date_time_get_day_of_month ()
gint g_date_time_get_week_numbering_year ()
gint g_date_time_get_week_of_year ()
gint g_date_time_get_day_of_week ()
gint g_date_time_get_day_of_year ()
gint g_date_time_get_hour ()
gint g_date_time_get_minute ()
gint g_date_time_get_second ()
gint g_date_time_get_microsecond ()
gdouble g_date_time_get_seconds ()
// GDateTime对象转换为unix时间戳
gint64 g_date_time_to_unix ()
// GDateTime转换为timeval
gboolean g_date_time_to_timeval ()
GTimeSpan g_date_time_get_utc_offset ()
const gchar * g_date_time_get_timezone_abbreviation ()
gboolean g_date_time_is_daylight_savings ()
// 时间日期格式转换
GDateTime * g_date_time_to_timezone ()
GDateTime * g_date_time_to_local ()
GDateTime * g_date_time_to_utc ()
// 与strftime相似
gchar * g_date_time_format ()
函数功能说明及综合演示
略