當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Elixir DateTime.add用法及代碼示例


Elixir語言中 DateTime.add 相關用法介紹如下。

用法:

add(datetime, amount_to_add, unit \\ :second, time_zone_database \\ Calendar.get_time_zone_database())
(從 1.8.0 開始)
@spec add(
  Calendar.datetime(),
  integer(),
  System.time_unit(),
  Calendar.time_zone_database()
) :: t()

將指定的時間量添加到 DateTime

接受來自 System.time_unit/0 的任何 unit 中的 amount_to_add。負值將及時向後移動。

考慮夏令時/夏令時等變化。這意味著添加時間會導致秋季"fall back"期間的牆壁時間為"go backwards"。在 "spring forward" 之前的日期時間中添加幾秒鍾可能會導致掛牆時間增加一個多小時。

小數秒精度以與 NaiveDateTime.add/2 類似的方式保持不變。

例子

iex> dt = DateTime.from_naive!(~N[2018-11-15 10:00:00], "Europe/Copenhagen", FakeTimeZoneDatabase)
iex> dt |> DateTime.add(3600, :second, FakeTimeZoneDatabase)
#DateTime<2018-11-15 11:00:00+01:00 CET Europe/Copenhagen>

iex> DateTime.add(~U[2018-11-15 10:00:00Z], 3600, :second)
~U[2018-11-15 11:00:00Z]

在 "spring forward" 之前添加 3 秒時,我們從 1:59:59 變為 3:00:02

iex> dt = DateTime.from_naive!(~N[2019-03-31 01:59:59.123], "Europe/Copenhagen", FakeTimeZoneDatabase)
iex> dt |> DateTime.add(3, :second, FakeTimeZoneDatabase)
#DateTime<2019-03-31 03:00:02.123+02:00 CEST Europe/Copenhagen>

相關用法


注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 DateTime.add(datetime, amount_to_add, unit \\ :second, time_zone_database \\ Calendar.get_time_zone_database())。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。