timezone.h
概述
提供获取时区信息的能力。
引用文件: <i18n/timezone.h>
库: libohi18n.so
系统能力: SystemCapability.Global.I18n
起始版本: 22
相关模块: i18n
汇总
结构体
| 名称 | typedef关键字 | 描述 |
|---|---|---|
| DateTimeRule | DateTimeRule | 时间日期规则。 |
| InitialTimeZoneRule | InitialTimeZoneRule | 起始时区规则。 |
| TimeArrayTimeZoneRule | TimeArrayTimeZoneRule | 起始时间戳数组定义的时区规则。 |
| AnnualTimeZoneRule | AnnualTimeZoneRule | 每年生效的时区规则。 |
| TimeZoneRules | TimeZoneRules | 完整的时区规则。 |
| TimeZoneRuleQuery | TimeZoneRuleQuery | 用于传入查询的信息,并接收查询的结果。 |
枚举
| 名称 | typedef关键字 | 描述 |
|---|---|---|
| DateRuleType | DateRuleType | 日期规则类型的枚举。 |
| TimeRuleType | TimeRuleType | 时间规则类型的枚举。 |
宏定义
| 名称 | 描述 |
|---|---|
| MAX_YEAR_IN_ANNUAL_TIMEZONE_RULE 0x7fffffff | 每年生效时区规则的年份最大值。 起始版本: 22 |
函数
枚举类型说明
DateRuleType
enum DateRuleType
描述
日期规则类型的枚举。
系统能力: SystemCapability.Global.I18n
起始版本: 22
| 枚举项 | 描述 |
|---|---|
| DOM = 0 | 当月的第几天,以2025年为例,十月十六日为:十月的第十六天。 |
| DOW = 1 | 当月的第几个星期几,以2025年为例,十月十六日为:十月的第三个星期四。 |
| DOW_GEQ_DOM = 2 | 当月第几天之后的第一个星期几,以2025年为例,十月十六日为:十月第十三天/十四天/十五天之后的第一个星期四。 |
| DOW_LEQ_DOM = 3 | 当月第几天之前的最后一个星期几,以2025年为例,十月十六日为:十月第二十天之前的最后一个星期四。 |
TimeRuleType
enum TimeRuleType
描述
时间规则类型的枚举。
系统能力: SystemCapability.Global.I18n
起始版本: 22
| 枚举项 | 描述 |
|---|---|
| WALL_TIME = 0 | 本地时钟时间(不考虑时区偏移)。 |
| STANDARD_TIME = 1 | 本地标准时间(不考虑夏令时偏移)。 |
| UTC_TIME = 2 | 世界标准时间(UTC时间)。 |
函数说明
OH_i18n_GetTimeZoneRules()
I18n_ErrorCode OH_i18n_GetTimeZoneRules(const char* timeZoneID, TimeZoneRules* rules)
描述
通过时区ID,获取完整的时区规则。
系统能力: SystemCapability.Global.I18n
起始版本: 22
参数:
| 参数项 | 描述 |
|---|---|
| const char* timeZoneID | 时区ID,例如“Asia/Shanghai”。 |
| TimeZoneRules* rules | 与时区ID对应的完整时区规则TimeZoneRules。 |
返回:
| 类型 | 说明 |
|---|---|
| I18n_ErrorCode | 0 - 成功。 8900001 - 传入参数无效。 8900050 - 预期之外的错误,例如内存错误。 |
OH_i18n_GetFirstStartFromTimeArrayTimeZoneRule()
I18n_ErrorCode OH_i18n_GetFirstStartFromTimeArrayTimeZoneRule(TimeArrayTimeZoneRule* rule, TimeZoneRuleQuery* query)
描述
根据TimeArrayTimeZoneRule,获取时区规则的首次生效时间。
系统能力: SystemCapability.Global.I18n
起始版本: 22
参数:
| 参数项 | 描述 |
|---|---|
| TimeArrayTimeZoneRule* rule | 起始时间戳数组定义的时区规则TimeArrayTimeZoneRule。 |
| TimeZoneRuleQuery* query | 用于传入查询的信息,并接收查询的结果。 |
返回:
| 类型 | 说明 |
|---|---|
| I18n_ErrorCode | 0 - 成功。 8900001 - 传入参数无效。 8900050 - 预期之外的错误,例如内存错误。 |
OH_i18n_GetFirstStartFromAnnualTimeZoneRule()
I18n_ErrorCode OH_i18n_GetFirstStartFromAnnualTimeZoneRule(AnnualTimeZoneRule* rule, TimeZoneRuleQuery* query)
描述
根据AnnualTimeZoneRule,获取时区规则的首次生效时间。
系统能力: SystemCapability.Global.I18n
起始版本: 22
参数:
| 参数项 | 描述 |
|---|---|
| AnnualTimeZoneRule* rule | 每年生效的时区规则AnnualTimeZoneRule。 |
| TimeZoneRuleQuery* query | 用于传入查询的信息,并接收查询的结果。 |
返回:
| 类型 | 说明 |
|---|---|
| I18n_ErrorCode | 0 - 成功。 8900001 - 传入参数无效。 8900050 - 预期之外的错误,例如内存错误。 |
OH_i18n_GetFinalStartFromTimeArrayTimeZoneRule()
I18n_ErrorCode OH_i18n_GetFinalStartFromTimeArrayTimeZoneRule(TimeArrayTimeZoneRule* rule, TimeZoneRuleQuery* query)
描述
根据TimeArrayTimeZoneRule,获取时区规则的最后一次生效时间。
系统能力: SystemCapability.Global.I18n
起始版本: 22
参数:
| 参数项 | 描述 |
|---|---|
| TimeArrayTimeZoneRule* rule | 起始时间戳数组定义的时区规则TimeArrayTimeZoneRule。 |
| TimeZoneRuleQuery* query | 用于传入查询的信息,并接收查询的结果。 |
返回:
| 类型 | 说明 |
|---|---|
| I18n_ErrorCode | 0 - 成功。 8900001 - 传入参数无效。 8900050 - 预期之外的错误,例如内存错误。 |
OH_i18n_GetFinalStartFromAnnualTimeZoneRule()
I18n_ErrorCode OH_i18n_GetFinalStartFromAnnualTimeZoneRule(AnnualTimeZoneRule* rule, TimeZoneRuleQuery* query)
描述
根据AnnualTimeZoneRule,获取时区规则的最后一次生效时间。
系统能力: SystemCapability.Global.I18n
起始版本: 22
参数:
| 参数项 | 描述 |
|---|---|
| AnnualTimeZoneRule* rule | 每年生效的时区规则AnnualTimeZoneRule。 |
| TimeZoneRuleQuery* query | 用于传入查询的信息,并接收查询的结果。 |
返回:
| 类型 | 说明 |
|---|---|
| I18n_ErrorCode | 0 - 成功。 8900001 - 传入参数无效。 8900050 - 预期之外的错误,例如内存错误。 |
OH_i18n_GetNextStartFromTimeArrayTimeZoneRule()
I18n_ErrorCode OH_i18n_GetNextStartFromTimeArrayTimeZoneRule(TimeArrayTimeZoneRule* rule, TimeZoneRuleQuery* query)
描述
根据TimeArrayTimeZoneRule,获取时区规则在基准时间之后的下一次生效时间。
系统能力: SystemCapability.Global.I18n
起始版本: 22
参数:
| 参数项 | 描述 |
|---|---|
| TimeArrayTimeZoneRule* rule | 起始时间戳数组定义的时区规则TimeArrayTimeZoneRule。 |
| TimeZoneRuleQuery* query | 用于传入查询的信息,并接收查询的结果。 |
返回:
| 类型 | 说明 |
|---|---|
| I18n_ErrorCode | 0 - 成功。 8900001 - 传入参数无效。 8900050 - 预期之外的错误,例如内存错误。 |
OH_i18n_GetNextStartFromAnnualTimeZoneRule()
I18n_ErrorCode OH_i18n_GetNextStartFromAnnualTimeZoneRule(AnnualTimeZoneRule* rule, TimeZoneRuleQuery* query)
描述
根据AnnualTimeZoneRule,获取时区规则在基准时间之后的下一次生效时间。
系统能力: SystemCapability.Global.I18n
起始版本: 22
参数:
| 参数项 | 描述 |
|---|---|
| AnnualTimeZoneRule* rule | 每年生效的时区规则AnnualTimeZoneRule。 |
| TimeZoneRuleQuery* query | 用于传入查询的信息,并接收查询的结果。 |
返回:
| 类型 | 说明 |
|---|---|
| I18n_ErrorCode | 0 - 成功。 8900001 - 传入参数无效。 8900050 - 预期之外的错误,例如内存错误。 |
OH_i18n_GetPrevStartFromTimeArrayTimeZoneRule()
I18n_ErrorCode OH_i18n_GetPrevStartFromTimeArrayTimeZoneRule(TimeArrayTimeZoneRule* rule, TimeZoneRuleQuery* query)
描述
根据TimeArrayTimeZoneRule,获取时区规则在基准时间之前的上一次生效时间。
系统能力: SystemCapability.Global.I18n
起始版本: 22
参数:
| 参数项 | 描述 |
|---|---|
| TimeArrayTimeZoneRule* rule | 起始时间戳数组定义的时区规则TimeArrayTimeZoneRule。 |
| TimeZoneRuleQuery* query | 用于传入查询的信息,并接收查询的结果。 |
返回:
| 类型 | 说明 |
|---|---|
| I18n_ErrorCode | 0 - 成功。 8900001 - 传入参数无效。 8900050 - 预期之外的错误,例如内存错误。 |
OH_i18n_GetPrevStartFromAnnualTimeZoneRule()
I18n_ErrorCode OH_i18n_GetPrevStartFromAnnualTimeZoneRule(AnnualTimeZoneRule* rule, TimeZoneRuleQuery* query)
描述
根据AnnualTimeZoneRule,获取时区规则在基准时间之前的上一次生效时间。
系统能力: SystemCapability.Global.I18n
起始版本: 22
参数:
| 参数项 | 描述 |
|---|---|
| AnnualTimeZoneRule* rule | 每年生效的时区规则AnnualTimeZoneRule。 |
| TimeZoneRuleQuery* query | 用于传入查询的信息,并接收查询的结果。 |
返回:
| 类型 | 说明 |
|---|---|
| I18n_ErrorCode | 0 - 成功。 8900001 - 传入参数无效。 8900050 - 预期之外的错误,例如内存错误。 |
OH_i18n_GetStartTimeAt()
I18n_ErrorCode OH_i18n_GetStartTimeAt(TimeArrayTimeZoneRule* rule, int32_t index, double* result)
描述
根据TimeArrayTimeZoneRule,获取时区规则指定索引的起始时间。
系统能力: SystemCapability.Global.I18n
起始版本: 22
参数:
| 参数项 | 描述 |
|---|---|
| TimeArrayTimeZoneRule* rule | 起始时间戳数组定义的时区规则TimeArrayTimeZoneRule。 |
| int32_t index | 起始时间的索引。 |
| double* result | 规则生效的起始时间。 |
返回:
| 类型 | 说明 |
|---|---|
| I18n_ErrorCode | 0 - 成功。 8900001 - 传入参数无效。 8900050 - 预期之外的错误,例如内存错误。 |
OH_i18n_GetStartInYear()
I18n_ErrorCode OH_i18n_GetStartInYear(AnnualTimeZoneRule* rule, int32_t year, TimeZoneRuleQuery* query)
描述
根据AnnualTimeZoneRule,获取时区规则在指定年份的生效时间。
系统能力: SystemCapability.Global.I18n
起始版本: 22
参数:
| 参数项 | 描述 |
|---|---|
| AnnualTimeZoneRule* rule | 每年生效的时区规则AnnualTimeZoneRule。 |
| int32_t year | 查询的年份。 |
| TimeZoneRuleQuery* query | 用于传入查询的信息,并接收查询的结果。 |
返回:
| 类型 | 说明 |
|---|---|
| I18n_ErrorCode | 0 - 成功。 8900001 - 传入参数无效。 8900050 - 预期之外的错误,例如内存错误。 |