类
class DateTimeFormat
public class DateTimeFormat {
public static prop RFC1123: DateTimeFormat
public static prop RFC3339: DateTimeFormat
public prop format: String
}
功能:提供时间格式的功能,用于解析和生成 DateTime 。
static prop RFC1123
public static prop RFC1123: DateTimeFormat
功能:提供 RFC1123 时间格式,时间字符串格式为 www, dd MMM yyyy HH:mm:ss z
。
static prop RFC3339
public static prop RFC3339: DateTimeFormat
功能:提供 RFC3339 时间格式,时间字符串格式为 yyyy-MM-ddTHH:mm:ssOOOO
。
prop format: String
public prop format: String
功能:DateTimeFormat实例的字符串格式。
类型:String
static func of(String)
public static func of(format: String): DateTimeFormat
功能:根据字符串创建具体的 DateTimeFormat 类型实例。
字符串的具体格式见时间字符串格式
参数:
- format: String - 字符串格式
返回值:
- DateTimeFormat - 时间格式。
异常:
- IllegalArgumentException - 当入参格式不符合时间字符串格式中字母数量的规定时,抛出异常。
class TimeZone
public class TimeZone <: ToString & Equatable<TimeZone> {
public init(id: String, offset: Duration)
}
功能:TimeZone 表示时区,记录了某一地区在不同时间较零时区的时间偏移,提供了从系统加载时区、自定义时区等功能。
父类型:
static let Local
public static let Local: TimeZone
功能:获取本地时区。
Local
从系统环境变量 TZ 中获取时区 ID,并根据该时区 ID 从系统时区文件中加载时区。其行为与函数load相同。
环境变量 TZ 的取值为标准时区 ID 格式(各操作系统遵循相同规范),例如“Asia/Shanghai”。
若环境变量 TZ 未设置或者为空,加载本地时区的规则如下:
- 在 Linux/Unix like 系统上:加载系统路径“/etc/localtime”链接,时区名与“/etc/localtime”指向的相对路径名相同,例如“Asia/Shanghai”。
- 如果上一条执行失败或者在 Windows 系统上,返回 ID 为 “UTC&偏移量” 的时区,例如“Asia/Shanghai”对应的时区为“UTC+08:00”。
类型:TimeZone
static let UTC
public static let UTC: TimeZone
功能:获取 UTC 时区。
类型:TimeZone
prop id
public prop id: String
功能:获取当前 TimeZone 实例所关联的时区 ID。
类型:String
init(String, Duration)
public init(id: String, offset: Duration)
功能:使用指定的时区 ID 和偏移量构造一个自定义 TimeZone 实例。
参数:
- id: String - 时区 ID。使用“/”作为分隔符,例如“Asia/Shanghai”,各操作系统使用相同规范。
- offset: Duration - 相对 UTC 时区的偏移量,精度为秒,向东为正、向西为负。取值范围为 (-25 * Duration.hour, 26 * Duration.hour)。
异常:
- IllegalArgumentException - 当输入
id
为空字符串,或offset
超出有效区间时,抛出异常。
static func load(String)
public static func load(id: String): TimeZone
功能:从系统中加载参数 id
指定的时区。
- 在 Linux 、 macOS 和 HarmonyOS 系统中,若存在环境变量 CJ_TZPATH,则使用环境变量指定的路径加载时区文件(若存在多个通过分隔符 “:” 分开的环境变量值,则按照分隔路径的先后顺序依次查找时区文件,并加载第一个找到的时区文件),否则从系统时区文件目录(Linux 和 macOS 为 "/usr/share/zoneinfo",HarmonyOS 为 "/system/etc/zoneinfo")加载时区。
- 在 Windows 系统中,用户需下载时区文件并编译,设置环境变量 CJ_TZPATH 指向 zoneinfo 目录(若存在多个通过分隔符 “;” 分开的环境变量值,则按照分隔路径的先后顺序依次查找时区文件,并加载第一个找到的时区文件),否则会导致异常。
参数:
- id: String - 时区 ID。
返回值:
- TimeZone - 时区。
异常:
- IllegalArgumentException - 当参数
id
为空,或长度超过 4096 字节,或不符合标准时区 ID 格式时,抛出异常。 - InvalidDataException - 当时区文件加载失败(找不到文件,文件解析失败等)时,抛出异常。
static func loadFromPaths(String, Array<String>)
public static func loadFromPaths(id: String, tzpaths: Array<String>): TimeZone
功能:根据参数 tzpaths
指定的时区文件目录,加载参数 id
指定的时区。
加载时区时,将从第一个被读取成功的时区文件路径中加载时区。时区文件格式需要满足时区信息格式。
参数:
返回值:
- TimeZone - 加载的时区。
异常:
- IllegalArgumentException - 当
id
为空,或长度超过 4096 字节,或不符合标准时区 ID 格式时,抛出异常。 - InvalidDataException - 当时区文件加载失败(找不到文件,文件解析失败等)时,抛出异常。
static func loadFromTZData(String, Array<UInt8>)
public static func loadFromTZData(id: String, data: Array<UInt8>): TimeZone
功能:使用指定的时区 ID 和时区数据构造一个自定义 TimeZone 实例。id
可以是任何合法字符串,data
需要满足 IANA 时区文件格式,加载成功时获得 TimeZone 实例,否则抛出异常。
参数:
返回值:
- TimeZone - 加载的时区。
异常:
- IllegalArgumentException - 当
id
为空时,抛出异常。 - InvalidDataException - 如果
data
解析失败,则抛出异常。
func toString()
public func toString(): String
功能:获取本 TimeZone 实例时区 ID 的字符串表示。
返回值:
- String - 时区 ID 的字符串表示。
operator func !=(TimeZone)
public operator func !=(r: TimeZone): Bool
功能:判断当前 TimeZone 实例的引用是否不等于 r
的引用。
参数:
返回值:
operator func ==(TimeZone)
public operator func ==(r: TimeZone): Bool
功能:判断当前 TimeZone 实例的引用是否等于 r
的引用。
参数:
返回值: