c标准库的时间函数简析

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 与时区无关

你可能感兴趣的:(c标准库的时间函数简析)