> Erlang中文手册 > local_time_to_universal_time/2 把本地时间转为 UTC 时间

calendar:local_time_to_universal_time/2

把本地时间转为 UTC 时间

用法:

local_time_to_universal_time(datetime1970(), `true` | `false` | `undefined`) -> datetime1970()

内部实现:

-spec local_time_to_universal_time(datetime1970(),
				   'true' | 'false' | 'undefined') ->
                                          datetime1970().
local_time_to_universal_time(DateTime, IsDst) ->
    erlang:localtime_to_universaltime(DateTime, IsDst).

把本地时间转为 UTC(Universal Coordinated Time:国际标准时) 时间,参数 DateTime1 必须是 1970 年 1 月 1 日之后的本地数值。

如果 IsDst 为 true,那么 {Date1, Time1} 是在夏令时期间;如果 IsDst 为 false,则不在夏令时期间;如果 IsDst 为 undefined,那么底层操作系统将会判断是否是在夏令时期间,就像调用 erlang:localtime_to_universaltime({Date1, Time1}) 那样。

返回值可能有 0、1 或者是 2 个 UTC 时间:

  • []:对于一个在切换至夏令时被跳过的本地时间,由于本地时间是一个非法数值(它还没有发生),所有它没有对应的 UTC 时间
  • [DstDateTimeUTC, DateTimeUTC]:对于一个在切换至夏令时被重复的本地时间,它有两个对应的 UTC 时间,一个是还在夏令时期间的第一个实例,一个是第二个实例。
  • [DateTimeUTC]:所有的本地时间只有一个对应的 UTC 时间。
calendar:local_time_to_universal_time({{2013, 11, 1}, {20, 17, 18}}, undefined).