c标准库的时间对象有三种
- UNIX time (POSIX time)
- struct tm
- 字符串表达的时间,比如 2018.0514 15:31:33
和时区的关系
三种时间对象,UNIX time表达的是绝对时间,和时区无关。struct tm和字符串时间,都需要配合时区才能准确表达一个UNIX time。
三种时间对象的转换关系以及和时区的关系
- time(NULL) -> UNIX time 和时区无关
- localtime(UNIX time) -> struct tm 按照机器的时区设置转换
- gmtime(UNIX time) -> struct tm 按照gmt转换
- mktime(struct tm) -> UNIX time 按照机器时区设置来解释struct tm
- strftime(struct tm) -> string time 与时区无关
- strptime(string time)-> struct tm 与时区无关
网友评论