Elixir語言中 DateTime.new
相關用法介紹如下。
用法:
new(date, time, time_zone \\ "Etc/UTC", time_zone_database \\ Calendar.get_time_zone_database())
(從 1.11.0 開始)
@spec new(Date.t(), Time.t(), Calendar.time_zone(), Calendar.time_zone_database()) ::
{:ok, t()}
| {:ambiguous, first_datetime :: t(), second_datetime :: t()}
| {:gap, t(), t()}
| {:error,
:incompatible_calendars
| :time_zone_not_found
| :utc_only_time_zone_database}
從日期和時間結構構建日期時間。
它期望時區將
放入。如果未通過時區,它將默認為 DateTime
"Etc/UTC"
,始終成功。否則,將根據 time_zone_database
給出的時區數據庫檢查
。請參閱模塊文檔中的“時區數據庫”部分。DateTime
例子
iex> DateTime.new(~D[2016-05-24], ~T[13:26:08.003], "Etc/UTC")
{:ok, ~U[2016-05-24 13:26:08.003Z]}
當日期時間不明確時 - 例如在從夏季時間更改為冬季時間期間 - 兩個可能的有效日期時間在一個元組中返回。第一個日期時間也是按時間順序排在第一位的日期時間,而第二個日期時間排在最後。
iex> {:ambiguous, first_dt, second_dt} = DateTime.new(~D[2018-10-28], ~T[02:30:00], "Europe/Copenhagen", FakeTimeZoneDatabase)
iex> first_dt
#DateTime<2018-10-28 02:30:00+02:00 CEST Europe/Copenhagen>
iex> second_dt
#DateTime<2018-10-28 02:30:00+01:00 CET Europe/Copenhagen>
當掛壁時間存在間隙時 - 例如在春天時鍾向前轉動時 - 間隙之前的最新有效日期時間和間隙之後的第一個有效日期時間。
iex> {:gap, just_before, just_after} = DateTime.new(~D[2019-03-31], ~T[02:30:00], "Europe/Copenhagen", FakeTimeZoneDatabase)
iex> just_before
#DateTime<2019-03-31 01:59:59.999999+01:00 CET Europe/Copenhagen>
iex> just_after
#DateTime<2019-03-31 03:00:00+02:00 CEST Europe/Copenhagen>
大多數時候,在某個時區的某個日期和時間,隻有一個有效的日期時間。
iex> {:ok, datetime} = DateTime.new(~D[2018-07-28], ~T[12:30:00], "Europe/Copenhagen", FakeTimeZoneDatabase)
iex> datetime
#DateTime<2018-07-28 12:30:00+02:00 CEST Europe/Copenhagen>
相關用法
- Elixir DateTime.new!用法及代碼示例
- Elixir DateTime.now用法及代碼示例
- Elixir DateTime.now!用法及代碼示例
- Elixir DateTime.to_unix用法及代碼示例
- Elixir DateTime.from_naive用法及代碼示例
- Elixir DateTime.from_unix用法及代碼示例
- Elixir DateTime.from_unix!用法及代碼示例
- Elixir DateTime.convert用法及代碼示例
- Elixir DateTime.utc_now用法及代碼示例
- Elixir DateTime.add用法及代碼示例
- Elixir DateTime.truncate用法及代碼示例
- Elixir DateTime.diff用法及代碼示例
- Elixir DateTime.to_date用法及代碼示例
- Elixir DateTime.to_gregorian_seconds用法及代碼示例
- Elixir DateTime.convert!用法及代碼示例
- Elixir DateTime.from_naive!用法及代碼示例
- Elixir DateTime.from_gregorian_seconds用法及代碼示例
- Elixir DateTime.to_naive用法及代碼示例
- Elixir DateTime.shift_zone!用法及代碼示例
- Elixir DateTime.from_iso8601用法及代碼示例
- Elixir DateTime.compare用法及代碼示例
- Elixir DateTime.to_string用法及代碼示例
- Elixir DateTime.to_iso8601用法及代碼示例
- Elixir DateTime.shift_zone用法及代碼示例
- Elixir DateTime.to_time用法及代碼示例
注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 DateTime.new(date, time, time_zone \\ "Etc/UTC", time_zone_database \\ Calendar.get_time_zone_database())。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。