Sophie

Sophie

distrib > Mageia > 7 > i586 > media > core-release > by-pkgid > 016232f1d9a3f7bee85855d35a2bca58 > files > 92

elixir-doc-1.7.2-1.mga7.noarch.rpm

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="generator" content="ExDoc v0.19.1">
    <title>NaiveDateTime – Elixir v1.7.2</title>
    <link rel="stylesheet" href="dist/app-240d7fc7e5.css" />
      <link rel="canonical" href="https://hexdocs.pm/elixir/v1.7/NaiveDateTime.html" />
    <script src="dist/sidebar_items-cdf4e58b19.js"></script>
    
  </head>
  <body data-type="modules">
    <script>try { if(localStorage.getItem('night-mode')) document.body.className += ' night-mode'; } catch (e) { }</script>
    <div class="main">
<button class="sidebar-button sidebar-toggle">
  <span class="icon-menu" aria-hidden="true"></span>
  <span class="sr-only">Toggle Sidebar</span>
</button>
<button class="sidebar-button night-mode-toggle">
  <span class="icon-theme" aria-hidden="true"></span>
  <span class="sr-only">Toggle Theme</span>
</button>
<section class="sidebar">

  <a href="http://elixir-lang.org/docs.html" class="sidebar-projectLink">
    <div class="sidebar-projectDetails">
      <h1 class="sidebar-projectName">
Elixir      </h1>
      <h2 class="sidebar-projectVersion">
        v1.7.2
      </h2>
    </div>
      <img src="assets/logo.png" alt="Elixir" class="sidebar-projectImage">
  </a>

  <form class="sidebar-search" action="search.html">
    <button type="submit" class="search-button">
      <span class="icon-search" aria-hidden="true"></span>
    </button>
    <input name="q" type="text" id="search-list" class="search-input" placeholder="Search" aria-label="Search" autocomplete="off" />
  </form>

  <ul class="sidebar-listNav">
    <li><a id="extras-list" href="#full-list">Pages</a></li>

      <li><a id="modules-list" href="#full-list">Modules</a></li>

      <li><a id="exceptions-list" href="#full-list">Exceptions</a></li>

  </ul>
  <div class="gradient"></div>
  <ul id="full-list" class="sidebar-fullList"></ul>
</section>

<section class="content">
  <div class="content-outer">
    <div id="content" class="content-inner">


      <h1>
        <small class="visible-xs">Elixir v1.7.2</small>
NaiveDateTime        
          <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L1" title="View Source" class="view-source" rel="help">
            <span class="icon-code" aria-hidden="true"></span>
            <span class="sr-only">View Source</span>
          </a>
      </h1>


        <section id="moduledoc">
<p>A NaiveDateTime struct (without a time zone) and functions.</p>
<p>The NaiveDateTime struct contains the fields year, month, day, hour,
minute, second, microsecond and calendar. New naive datetimes can be
built with the <a href="#new/2"><code class="inline">new/2</code></a> and <a href="#new/8"><code class="inline">new/8</code></a> functions or using the
<a href="Kernel.html#sigil_N/2"><code class="inline">~N</code></a> sigil:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="ld">~N[2000-01-01 23:00:07]</span><span class="w">
</span><span class="ld">~N[2000-01-01 23:00:07]</span></code></pre>
<p>The date and time fields in the struct can be accessed directly:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="n">naive</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ld">~N[2000-01-01 23:00:07]</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">naive</span><span class="o">.</span><span class="n">year</span><span class="w">
</span><span class="mi">2000</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">naive</span><span class="o">.</span><span class="n">second</span><span class="w">
</span><span class="mi">7</span></code></pre>
<p>We call them “naive” because this datetime representation does not
have a time zone. This means the datetime may not actually exist in
certain areas in the world even though it is valid.</p>
<p>For example, when daylight saving changes are applied by a region,
the clock typically moves forward or backward by one hour. This means
certain datetimes never occur or may occur more than once. Since
<a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> is not validated against a time zone, such errors
would go unnoticed.</p>
<p>The functions of this module work with the <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> struct as well
as any struct that contains the same fields as the <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> struct,
such as <a href="DateTime.html"><code class="inline">DateTime</code></a>. Such functions expect
<a href="Calendar.html#t:naive_datetime/0"><code class="inline">Calendar.naive_datetime/0</code></a> in their typespecs (instead of <a href="#t:t/0"><code class="inline">t/0</code></a>).</p>
<p>Developers should avoid creating the NaiveDateTime structs directly
and instead, rely on the functions provided by this module as well
as the ones in 3rd party calendar libraries.</p>
<h2 id="module-comparing-naive-date-times" class="section-heading">
  <a href="#module-comparing-naive-date-times" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Comparing naive date times
</h2>

<p>Comparisons in Elixir using <a href="Kernel.html#==/2"><code class="inline">==/2</code></a>, <a href="Kernel.html#%253E/2"><code class="inline">&gt;/2</code></a>, <a href="Kernel.html#%253C/2"><code class="inline">&lt;/2</code></a> and similar are structural
and based on the <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> struct fields. For proper comparison
between naive datetimes, use the <a href="#compare/2"><code class="inline">compare/2</code></a> function.</p>
<h2 id="module-using-epochs" class="section-heading">
  <a href="#module-using-epochs" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Using epochs
</h2>

<p>The <a href="#add/3"><code class="inline">add/3</code></a> and <a href="#diff/3"><code class="inline">diff/3</code></a> functions can be used for computing with
date times or retrieving the number of seconds between instants.
For example, if there is an interest in computing the number of
seconds from the Unix epoch (1970-01-01 00:00:00):</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">diff</span><span class="p" data-group-id="6488544076-1">(</span><span class="ld">~N[2010-04-17 14:00:00]</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[1970-01-01 00:00:00]</span><span class="p" data-group-id="6488544076-1">)</span><span class="w">
</span><span class="mi">1271512800</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">add</span><span class="p" data-group-id="6488544076-2">(</span><span class="ld">~N[1970-01-01 00:00:00]</span><span class="p">,</span><span class="w"> </span><span class="mi">1_271_512_800</span><span class="p" data-group-id="6488544076-2">)</span><span class="w">
</span><span class="ld">~N[2010-04-17 14:00:00]</span></code></pre>
<p>Those functions are optimized to deal with common epochs, such
as the Unix Epoch above or the Gregorian Epoch (0000-01-01 00:00:00).</p>
        </section>

        <section id="summary" class="details-list">
          <h1 class="section-heading">
            <a class="hover-link" href="#summary">
              <span class="icon-link" aria-hidden="true"></span>
              <span class="sr-only">Link to this section</span>
            </a>
            Summary
          </h1>
  <div class="summary-types summary">
    <h2>
      <a href="#types">Types</a>
    </h2>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#t:t/0">t()</a>
  </div>
</div>
  </div>
          
  <div class="summary-functions summary">
    <h2>
      <a href="#functions">Functions</a>
    </h2>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#add/3">add(naive_datetime, integer, unit \\ :second)</a>
  </div>
    <div class="summary-synopsis"><p>Adds a specified amount of time to a <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#compare/2">compare(naive_datetime1, naive_datetime2)</a>
  </div>
    <div class="summary-synopsis"><p>Compares two <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> structs</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#convert!/2">convert!(naive_datetime, calendar)</a>
  </div>
    <div class="summary-synopsis"><p>Converts the given <code class="inline">naive_datetime</code> from one calendar to another</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#convert/2">convert(naive_datetime, calendar)</a>
  </div>
    <div class="summary-synopsis"><p>Converts the given <code class="inline">naive_datetime</code> from one calendar to another</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#diff/3">diff(naive_datetime1, naive_datetime2, unit \\ :second)</a>
  </div>
    <div class="summary-synopsis"><p>Subtracts <code class="inline">naive_datetime2</code> from <code class="inline">naive_datetime1</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#from_erl!/3">from_erl!(tuple, microsecond \\ {0, 0}, calendar \\ Calendar.ISO)</a>
  </div>
    <div class="summary-synopsis"><p>Converts an Erlang datetime tuple to a <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> struct</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#from_erl/3">from_erl(tuple, microsecond \\ {0, 0}, calendar \\ Calendar.ISO)</a>
  </div>
    <div class="summary-synopsis"><p>Converts an Erlang datetime tuple to a <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> struct</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#from_iso8601!/2">from_iso8601!(string, calendar \\ Calendar.ISO)</a>
  </div>
    <div class="summary-synopsis"><p>Parses the extended “Date and time of day” format described by
<a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601:2004</a></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#from_iso8601/2">from_iso8601(string, calendar \\ Calendar.ISO)</a>
  </div>
    <div class="summary-synopsis"><p>Parses the extended “Date and time of day” format described by
<a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601:2004</a></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#new/2">new(date, time)</a>
  </div>
    <div class="summary-synopsis"><p>Builds a naive datetime from date and time structs</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#new/8">new(year, month, day, hour, minute, second, microsecond \\ {0, 0}, calendar \\ Calendar.ISO)</a>
  </div>
    <div class="summary-synopsis"><p>Builds a new ISO naive datetime</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#to_date/1">to_date(naive_date_time)</a>
  </div>
    <div class="summary-synopsis"><p>Converts a <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> into a <a href="Date.html"><code class="inline">Date</code></a></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#to_erl/1">to_erl(naive_datetime)</a>
  </div>
    <div class="summary-synopsis"><p>Converts a <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> struct to an Erlang datetime tuple</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#to_iso8601/2">to_iso8601(naive_datetime, format \\ :extended)</a>
  </div>
    <div class="summary-synopsis"><p>Converts the given naive datetime to
<a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601:2004</a></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#to_string/1">to_string(naive_datetime)</a>
  </div>
    <div class="summary-synopsis"><p>Converts the given naive datetime to a string according to its calendar</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#to_time/1">to_time(naive_datetime)</a>
  </div>
    <div class="summary-synopsis"><p>Converts a <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> into <a href="Time.html"><code class="inline">Time</code></a></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#truncate/2">truncate(naive_datetime, precision)</a>
  </div>
    <div class="summary-synopsis"><p>Returns the given naive datetime with the microsecond field truncated to the
given precision (<code class="inline">:microsecond</code>, <code class="inline">:millisecond</code> or <code class="inline">:second</code>)</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#utc_now/1">utc_now(calendar \\ Calendar.ISO)</a>
  </div>
    <div class="summary-synopsis"><p>Returns the current naive datetime in UTC</p>
</div>
</div>
  </div>
          
        </section>

        <section id="types" class="details-list">
          <h1 class="section-heading">
            <a class="hover-link" href="#types">
              <span class="icon-link" aria-hidden="true"></span>
              <span class="sr-only">Link to this section</span>
            </a>
            Types
          </h1>
          <div class="types-list">
<div class="detail" id="t:t/0">
    <div class="detail-header">
    <a href="#t:t/0" class="detail-link" title="Link to this type">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this type</span>
    </a>
    <span class="signature">t()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L75" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>t() :: %NaiveDateTime{
  calendar: <a href="Calendar.html#t:calendar/0">Calendar.calendar</a>(),
  day: <a href="Calendar.html#t:day/0">Calendar.day</a>(),
  hour: <a href="Calendar.html#t:hour/0">Calendar.hour</a>(),
  microsecond: <a href="Calendar.html#t:microsecond/0">Calendar.microsecond</a>(),
  minute: <a href="Calendar.html#t:minute/0">Calendar.minute</a>(),
  month: <a href="Calendar.html#t:month/0">Calendar.month</a>(),
  second: <a href="Calendar.html#t:second/0">Calendar.second</a>(),
  year: <a href="Calendar.html#t:year/0">Calendar.year</a>()
}</pre>
      </div>
  </div>
  <section class="docstring">
  </section>
</div>
          </div>
        </section>


        <section id="functions" class="details-list">
          <h1 class="section-heading">
            <a class="hover-link" href="#functions">
              <span class="icon-link" aria-hidden="true"></span>
              <span class="sr-only">Link to this section</span>
            </a>
            Functions
          </h1>
<div class="detail" id="add/3">
  
    <span id="add/2"></span>
  <div class="detail-header">
    <a href="#add/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">add(naive_datetime, integer, unit \\ :second)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L273" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
    
      <span class="note">(since 1.4.0)</span>
    
      <div class="specs">
          <pre>add(<a href="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">integer</a>(), <a href="System.html#t:time_unit/0">System.time_unit</a>()) :: <a href="#t:t/0">t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Adds a specified amount of time to a <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a>.</p>
<p>Accepts an <code class="inline">integer</code> in any <code class="inline">unit</code> available from <a href="System.html#t:time_unit/0"><code class="inline">System.time_unit/0</code></a>.
Negative values will move backwards in time.</p>
<p>This operation is only possible if both calendars are convertible to <a href="Calendar.ISO.html"><code class="inline">Calendar.ISO</code></a>.</p>
<h2 id="add/3-examples" class="section-heading">
  <a href="#add/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="c1"># adds seconds by default</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">add</span><span class="p" data-group-id="8561526095-1">(</span><span class="ld">~N[2014-10-02 00:29:10]</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="8561526095-1">)</span><span class="w">
</span><span class="ld">~N[2014-10-02 00:29:12]</span><span class="w">

</span><span class="c1"># accepts negative offsets</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">add</span><span class="p" data-group-id="8561526095-2">(</span><span class="ld">~N[2014-10-02 00:29:10]</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="mi">2</span><span class="p" data-group-id="8561526095-2">)</span><span class="w">
</span><span class="ld">~N[2014-10-02 00:29:08]</span><span class="w">

</span><span class="c1"># can work with other units</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">add</span><span class="p" data-group-id="8561526095-3">(</span><span class="ld">~N[2014-10-02 00:29:10]</span><span class="p">,</span><span class="w"> </span><span class="mi">2_000</span><span class="p">,</span><span class="w"> </span><span class="ss">:millisecond</span><span class="p" data-group-id="8561526095-3">)</span><span class="w">
</span><span class="ld">~N[2014-10-02 00:29:12]</span><span class="w">

</span><span class="c1"># keeps the same precision</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">add</span><span class="p" data-group-id="8561526095-4">(</span><span class="ld">~N[2014-10-02 00:29:10.021]</span><span class="p">,</span><span class="w"> </span><span class="mi">21</span><span class="p">,</span><span class="w"> </span><span class="ss">:second</span><span class="p" data-group-id="8561526095-4">)</span><span class="w">
</span><span class="ld">~N[2014-10-02 00:29:31.021]</span><span class="w">

</span><span class="c1"># changes below the precision will not be visible</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">hidden</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">add</span><span class="p" data-group-id="8561526095-5">(</span><span class="ld">~N[2014-10-02 00:29:10]</span><span class="p">,</span><span class="w"> </span><span class="mi">21</span><span class="p">,</span><span class="w"> </span><span class="ss">:millisecond</span><span class="p" data-group-id="8561526095-5">)</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">hidden</span><span class="o">.</span><span class="n">microsecond</span><span class="w"> </span><span class="c1"># ~N[2014-10-02 00:29:10]</span><span class="w">
</span><span class="p" data-group-id="8561526095-6">{</span><span class="mi">21000</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="8561526095-6">}</span><span class="w">

</span><span class="c1"># from Gregorian seconds</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">add</span><span class="p" data-group-id="8561526095-7">(</span><span class="ld">~N[0000-01-01 00:00:00]</span><span class="p">,</span><span class="w"> </span><span class="mi">63_579_428_950</span><span class="p" data-group-id="8561526095-7">)</span><span class="w">
</span><span class="ld">~N[2014-10-02 00:29:10]</span></code></pre>
  </section>
</div>
<div class="detail" id="compare/2">
    <div class="detail-header">
    <a href="#compare/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">compare(naive_datetime1, naive_datetime2)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L737" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
    
      <span class="note">(since 1.4.0)</span>
    
      <div class="specs">
          <pre>compare(<a href="Calendar.html#t:naive_datetime/0">Calendar.naive_datetime</a>(), <a href="Calendar.html#t:naive_datetime/0">Calendar.naive_datetime</a>()) :: :lt | :eq | :gt</pre>
      </div>
  </div>
  <section class="docstring">
<p>Compares two <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> structs.</p>
<p>Returns <code class="inline">:gt</code> if first is later than the second
and <code class="inline">:lt</code> for vice versa. If the two NaiveDateTime
are equal <code class="inline">:eq</code> is returned.</p>
<h2 id="compare/2-examples" class="section-heading">
  <a href="#compare/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">compare</span><span class="p" data-group-id="3141219321-1">(</span><span class="ld">~N[2016-04-16 13:30:15]</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2016-04-28 16:19:25]</span><span class="p" data-group-id="3141219321-1">)</span><span class="w">
</span><span class="ss">:lt</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">compare</span><span class="p" data-group-id="3141219321-2">(</span><span class="ld">~N[2016-04-16 13:30:15.1]</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2016-04-16 13:30:15.01]</span><span class="p" data-group-id="3141219321-2">)</span><span class="w">
</span><span class="ss">:gt</span></code></pre>
<p>This function can also be used to compare a DateTime without
the time zone information:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="n">dt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="2435943819-1">%</span><span class="nc" data-group-id="2435943819-1">DateTime</span><span class="p" data-group-id="2435943819-1">{</span><span class="ss">year</span><span class="p">:</span><span class="w"> </span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="ss">month</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">day</span><span class="p">:</span><span class="w"> </span><span class="mi">29</span><span class="p">,</span><span class="w"> </span><span class="ss">zone_abbr</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;CET&quot;</span><span class="p">,</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">               </span><span class="ss">hour</span><span class="p">:</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="ss">minute</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="ss">second</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="ss">microsecond</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="2435943819-2">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="2435943819-2">}</span><span class="p">,</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">               </span><span class="ss">utc_offset</span><span class="p">:</span><span class="w"> </span><span class="mi">3600</span><span class="p">,</span><span class="w"> </span><span class="ss">std_offset</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="ss">time_zone</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;Europe/Warsaw&quot;</span><span class="p" data-group-id="2435943819-1">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">compare</span><span class="p" data-group-id="2435943819-3">(</span><span class="n">dt</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2000-02-29 23:00:07]</span><span class="p" data-group-id="2435943819-3">)</span><span class="w">
</span><span class="ss">:eq</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">compare</span><span class="p" data-group-id="2435943819-4">(</span><span class="n">dt</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2000-01-29 23:00:07]</span><span class="p" data-group-id="2435943819-4">)</span><span class="w">
</span><span class="ss">:gt</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">compare</span><span class="p" data-group-id="2435943819-5">(</span><span class="n">dt</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2000-03-29 23:00:07]</span><span class="p" data-group-id="2435943819-5">)</span><span class="w">
</span><span class="ss">:lt</span></code></pre>
  </section>
</div>
<div class="detail" id="convert!/2">
    <div class="detail-header">
    <a href="#convert!/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">convert!(naive_datetime, calendar)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L836" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
    
      <span class="note">(since 1.5.0)</span>
    
      <div class="specs">
          <pre>convert!(<a href="Calendar.html#t:naive_datetime/0">Calendar.naive_datetime</a>(), <a href="Calendar.html#t:calendar/0">Calendar.calendar</a>()) :: <a href="#t:t/0">t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Converts the given <code class="inline">naive_datetime</code> from one calendar to another.</p>
<p>If it is not possible to convert unambiguously between the calendars
(see <a href="Calendar.html#compatible_calendars?/2"><code class="inline">Calendar.compatible_calendars?/2</code></a>), an ArgumentError is raised.</p>
<h2 id="convert!/2-examples" class="section-heading">
  <a href="#convert!/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<p>Imagine someone implements <code class="inline">Calendar.Holocene</code>, a calendar based on the
Gregorian calendar that adds exactly 10,000 years to the current Gregorian
year:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">convert!</span><span class="p" data-group-id="1157248981-1">(</span><span class="ld">~N[2000-01-01 13:30:15]</span><span class="p">,</span><span class="w"> </span><span class="nc">Calendar.Holocene</span><span class="p" data-group-id="1157248981-1">)</span><span class="w">
</span><span class="p" data-group-id="1157248981-2">%</span><span class="nc" data-group-id="1157248981-2">NaiveDateTime</span><span class="p" data-group-id="1157248981-2">{</span><span class="ss">calendar</span><span class="p">:</span><span class="w"> </span><span class="nc">Calendar.Holocene</span><span class="p">,</span><span class="w"> </span><span class="ss">year</span><span class="p">:</span><span class="w"> </span><span class="mi">12000</span><span class="p">,</span><span class="w"> </span><span class="ss">month</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">day</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
               </span><span class="ss">hour</span><span class="p">:</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="ss">minute</span><span class="p">:</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="ss">second</span><span class="p">:</span><span class="w"> </span><span class="mi">15</span><span class="p">,</span><span class="w"> </span><span class="ss">microsecond</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1157248981-3">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="1157248981-3">}</span><span class="p" data-group-id="1157248981-2">}</span></code></pre>
  </section>
</div>
<div class="detail" id="convert/2">
    <div class="detail-header">
    <a href="#convert/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">convert(naive_datetime, calendar)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L804" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
    
      <span class="note">(since 1.5.0)</span>
    
      <div class="specs">
          <pre>convert(<a href="Calendar.html#t:naive_datetime/0">Calendar.naive_datetime</a>(), <a href="Calendar.html#t:calendar/0">Calendar.calendar</a>()) ::
  {:ok, <a href="#t:t/0">t</a>()} | {:error, :incompatible_calendars}</pre>
      </div>
  </div>
  <section class="docstring">
<p>Converts the given <code class="inline">naive_datetime</code> from one calendar to another.</p>
<p>If it is not possible to convert unambiguously between the calendars
(see <a href="Calendar.html#compatible_calendars?/2"><code class="inline">Calendar.compatible_calendars?/2</code></a>), an <code class="inline">{:error, :incompatible_calendars}</code> tuple
is returned.</p>
<h2 id="convert/2-examples" class="section-heading">
  <a href="#convert/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<p>Imagine someone implements <code class="inline">Calendar.Holocene</code>, a calendar based on the
Gregorian calendar that adds exactly 10,000 years to the current Gregorian
year:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">convert</span><span class="p" data-group-id="8231874350-1">(</span><span class="ld">~N[2000-01-01 13:30:15]</span><span class="p">,</span><span class="w"> </span><span class="nc">Calendar.Holocene</span><span class="p" data-group-id="8231874350-1">)</span><span class="w">
</span><span class="p" data-group-id="8231874350-2">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8231874350-3">%</span><span class="nc" data-group-id="8231874350-3">NaiveDateTime</span><span class="p" data-group-id="8231874350-3">{</span><span class="ss">calendar</span><span class="p">:</span><span class="w"> </span><span class="nc">Calendar.Holocene</span><span class="p">,</span><span class="w"> </span><span class="ss">year</span><span class="p">:</span><span class="w"> </span><span class="mi">12000</span><span class="p">,</span><span class="w"> </span><span class="ss">month</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">day</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
                     </span><span class="ss">hour</span><span class="p">:</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="ss">minute</span><span class="p">:</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="ss">second</span><span class="p">:</span><span class="w"> </span><span class="mi">15</span><span class="p">,</span><span class="w"> </span><span class="ss">microsecond</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="8231874350-4">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="8231874350-4">}</span><span class="p" data-group-id="8231874350-3">}</span><span class="p" data-group-id="8231874350-2">}</span></code></pre>
  </section>
</div>
<div class="detail" id="diff/3">
  
    <span id="diff/2"></span>
  <div class="detail-header">
    <a href="#diff/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">diff(naive_datetime1, naive_datetime2, unit \\ :second)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L312" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
    
      <span class="note">(since 1.4.0)</span>
    
      <div class="specs">
          <pre>diff(<a href="#t:t/0">t</a>(), <a href="#t:t/0">t</a>(), <a href="System.html#t:time_unit/0">System.time_unit</a>()) :: <a href="typespecs.html#basic-types">integer</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Subtracts <code class="inline">naive_datetime2</code> from <code class="inline">naive_datetime1</code>.</p>
<p>The answer can be returned in any <code class="inline">unit</code> available from <a href="System.html#t:time_unit/0"><code class="inline">System.time_unit/0</code></a>.</p>
<p>This function returns the difference in seconds where seconds are measured
according to <a href="Calendar.ISO.html"><code class="inline">Calendar.ISO</code></a>.</p>
<h2 id="diff/3-examples" class="section-heading">
  <a href="#diff/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">diff</span><span class="p" data-group-id="2640287440-1">(</span><span class="ld">~N[2014-10-02 00:29:12]</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2014-10-02 00:29:10]</span><span class="p" data-group-id="2640287440-1">)</span><span class="w">
</span><span class="mi">2</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">diff</span><span class="p" data-group-id="2640287440-2">(</span><span class="ld">~N[2014-10-02 00:29:12]</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2014-10-02 00:29:10]</span><span class="p">,</span><span class="w"> </span><span class="ss">:microsecond</span><span class="p" data-group-id="2640287440-2">)</span><span class="w">
</span><span class="mi">2_000_000</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">diff</span><span class="p" data-group-id="2640287440-3">(</span><span class="ld">~N[2014-10-02 00:29:10.042]</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2014-10-02 00:29:10.021]</span><span class="p">,</span><span class="w"> </span><span class="ss">:millisecond</span><span class="p" data-group-id="2640287440-3">)</span><span class="w">
</span><span class="mi">21</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">diff</span><span class="p" data-group-id="2640287440-4">(</span><span class="ld">~N[2014-10-02 00:29:10]</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2014-10-02 00:29:12]</span><span class="p" data-group-id="2640287440-4">)</span><span class="w">
</span><span class="o">-</span><span class="mi">2</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">diff</span><span class="p" data-group-id="2640287440-5">(</span><span class="ld">~N[-0001-10-02 00:29:10]</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[-0001-10-02 00:29:12]</span><span class="p" data-group-id="2640287440-5">)</span><span class="w">
</span><span class="o">-</span><span class="mi">2</span><span class="w">

</span><span class="c1"># to Gregorian seconds</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">diff</span><span class="p" data-group-id="2640287440-6">(</span><span class="ld">~N[2014-10-02 00:29:10]</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[0000-01-01 00:00:00]</span><span class="p" data-group-id="2640287440-6">)</span><span class="w">
</span><span class="mi">63579428950</span></code></pre>
  </section>
</div>
<div class="detail" id="from_erl!/3">
  
    <span id="from_erl!/1"></span>

    <span id="from_erl!/2"></span>
  <div class="detail-header">
    <a href="#from_erl!/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">from_erl!(tuple, microsecond \\ {0, 0}, calendar \\ Calendar.ISO)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L696" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>from_erl!(<a href="http://www.erlang.org/doc/man/calendar.html#type-datetime">:calendar.datetime</a>(), <a href="Calendar.html#t:microsecond/0">Calendar.microsecond</a>(), <a href="Calendar.html#t:calendar/0">Calendar.calendar</a>()) ::
  <a href="#t:t/0">t</a>() | <a href="typespecs.html#built-in-types">no_return</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Converts an Erlang datetime tuple to a <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> struct.</p>
<p>Raises if the datetime is invalid.
Attempting to convert an invalid ISO calendar date will produce an error tuple.</p>
<h2 id="from_erl!/3-examples" class="section-heading">
  <a href="#from_erl!/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_erl!</span><span class="p" data-group-id="9362602024-1">(</span><span class="p" data-group-id="9362602024-2">{</span><span class="p" data-group-id="9362602024-3">{</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="9362602024-3">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="9362602024-4">{</span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p" data-group-id="9362602024-4">}</span><span class="p" data-group-id="9362602024-2">}</span><span class="p" data-group-id="9362602024-1">)</span><span class="w">
</span><span class="ld">~N[2000-01-01 13:30:15]</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_erl!</span><span class="p" data-group-id="9362602024-5">(</span><span class="p" data-group-id="9362602024-6">{</span><span class="p" data-group-id="9362602024-7">{</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="9362602024-7">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="9362602024-8">{</span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p" data-group-id="9362602024-8">}</span><span class="p" data-group-id="9362602024-6">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="9362602024-9">{</span><span class="mi">5000</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="9362602024-9">}</span><span class="p" data-group-id="9362602024-5">)</span><span class="w">
</span><span class="ld">~N[2000-01-01 13:30:15.005]</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_erl!</span><span class="p" data-group-id="9362602024-10">(</span><span class="p" data-group-id="9362602024-11">{</span><span class="p" data-group-id="9362602024-12">{</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="9362602024-12">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="9362602024-13">{</span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p" data-group-id="9362602024-13">}</span><span class="p" data-group-id="9362602024-11">}</span><span class="p" data-group-id="9362602024-10">)</span><span class="w">
</span><span class="gt">** (ArgumentError) cannot convert {{2000, 13, 1}, {13, 30, 15}} to naive datetime, reason: :invalid_date</span></code></pre>
  </section>
</div>
<div class="detail" id="from_erl/3">
  
    <span id="from_erl/1"></span>

    <span id="from_erl/2"></span>
  <div class="detail-header">
    <a href="#from_erl/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">from_erl(tuple, microsecond \\ {0, 0}, calendar \\ Calendar.ISO)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L673" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>from_erl(<a href="http://www.erlang.org/doc/man/calendar.html#type-datetime">:calendar.datetime</a>(), <a href="Calendar.html#t:microsecond/0">Calendar.microsecond</a>(), <a href="Calendar.html#t:calendar/0">Calendar.calendar</a>()) ::
  {:ok, <a href="#t:t/0">t</a>()} | {:error, <a href="typespecs.html#basic-types">atom</a>()}</pre>
      </div>
  </div>
  <section class="docstring">
<p>Converts an Erlang datetime tuple to a <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> struct.</p>
<p>Attempting to convert an invalid ISO calendar date will produce an error tuple.</p>
<h2 id="from_erl/3-examples" class="section-heading">
  <a href="#from_erl/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_erl</span><span class="p" data-group-id="3175540639-1">(</span><span class="p" data-group-id="3175540639-2">{</span><span class="p" data-group-id="3175540639-3">{</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="3175540639-3">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3175540639-4">{</span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p" data-group-id="3175540639-4">}</span><span class="p" data-group-id="3175540639-2">}</span><span class="p" data-group-id="3175540639-1">)</span><span class="w">
</span><span class="p" data-group-id="3175540639-5">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2000-01-01 13:30:15]</span><span class="p" data-group-id="3175540639-5">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_erl</span><span class="p" data-group-id="3175540639-6">(</span><span class="p" data-group-id="3175540639-7">{</span><span class="p" data-group-id="3175540639-8">{</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="3175540639-8">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3175540639-9">{</span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p" data-group-id="3175540639-9">}</span><span class="p" data-group-id="3175540639-7">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3175540639-10">{</span><span class="mi">5000</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="3175540639-10">}</span><span class="p" data-group-id="3175540639-6">)</span><span class="w">
</span><span class="p" data-group-id="3175540639-11">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2000-01-01 13:30:15.005]</span><span class="p" data-group-id="3175540639-11">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_erl</span><span class="p" data-group-id="3175540639-12">(</span><span class="p" data-group-id="3175540639-13">{</span><span class="p" data-group-id="3175540639-14">{</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="3175540639-14">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3175540639-15">{</span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p" data-group-id="3175540639-15">}</span><span class="p" data-group-id="3175540639-13">}</span><span class="p" data-group-id="3175540639-12">)</span><span class="w">
</span><span class="p" data-group-id="3175540639-16">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_date</span><span class="p" data-group-id="3175540639-16">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_erl</span><span class="p" data-group-id="3175540639-17">(</span><span class="p" data-group-id="3175540639-18">{</span><span class="p" data-group-id="3175540639-19">{</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="3175540639-19">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3175540639-20">{</span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p" data-group-id="3175540639-20">}</span><span class="p" data-group-id="3175540639-18">}</span><span class="p" data-group-id="3175540639-17">)</span><span class="w">
</span><span class="p" data-group-id="3175540639-21">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_date</span><span class="p" data-group-id="3175540639-21">}</span></code></pre>
  </section>
</div>
<div class="detail" id="from_iso8601!/2">
  
    <span id="from_iso8601!/1"></span>
  <div class="detail-header">
    <a href="#from_iso8601!/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">from_iso8601!(string, calendar \\ Calendar.ISO)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L545" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>from_iso8601!(<a href="String.html#t:t/0">String.t</a>(), <a href="Calendar.html#t:calendar/0">Calendar.calendar</a>()) :: <a href="#t:t/0">t</a>() | <a href="typespecs.html#built-in-types">no_return</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Parses the extended “Date and time of day” format described by
<a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601:2004</a>.</p>
<p>Raises if the format is invalid.</p>
<h2 id="from_iso8601!/2-examples" class="section-heading">
  <a href="#from_iso8601!/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601!</span><span class="p" data-group-id="0097092881-1">(</span><span class="s">&quot;2015-01-23T23:50:07.123Z&quot;</span><span class="p" data-group-id="0097092881-1">)</span><span class="w">
</span><span class="ld">~N[2015-01-23 23:50:07.123]</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601!</span><span class="p" data-group-id="0097092881-2">(</span><span class="s">&quot;2015-01-23T23:50:07,123Z&quot;</span><span class="p" data-group-id="0097092881-2">)</span><span class="w">
</span><span class="ld">~N[2015-01-23 23:50:07.123]</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601!</span><span class="p" data-group-id="0097092881-3">(</span><span class="s">&quot;2015-01-23P23:50:07&quot;</span><span class="p" data-group-id="0097092881-3">)</span><span class="w">
</span><span class="gt">** (ArgumentError) cannot parse &quot;2015-01-23P23:50:07&quot; as naive datetime, reason: :invalid_format</span></code></pre>
  </section>
</div>
<div class="detail" id="from_iso8601/2">
  
    <span id="from_iso8601/1"></span>
  <div class="detail-header">
    <a href="#from_iso8601/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">from_iso8601(string, calendar \\ Calendar.ISO)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L504" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>from_iso8601(<a href="String.html#t:t/0">String.t</a>(), <a href="Calendar.html#t:calendar/0">Calendar.calendar</a>()) ::
  {:ok, <a href="#t:t/0">t</a>()} | {:error, <a href="typespecs.html#basic-types">atom</a>()}</pre>
      </div>
  </div>
  <section class="docstring">
<p>Parses the extended “Date and time of day” format described by
<a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601:2004</a>.</p>
<p>Time zone offset may be included in the string but they will be
simply discarded as such information is not included in naive date
times.</p>
<p>As specified in the standard, the separator “T” may be omitted if
desired as there is no ambiguity within this function.</p>
<p>Time representations with reduced accuracy are not supported.</p>
<p>Note that while ISO 8601 allows datetimes to specify 24:00:00 as the
zero hour of the next day, this notation is not supported by Elixir.</p>
<h2 id="from_iso8601/2-examples" class="section-heading">
  <a href="#from_iso8601/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-1">(</span><span class="s">&quot;2015-01-23 23:50:07&quot;</span><span class="p" data-group-id="4177081728-1">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-2">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2015-01-23 23:50:07]</span><span class="p" data-group-id="4177081728-2">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-3">(</span><span class="s">&quot;2015-01-23T23:50:07&quot;</span><span class="p" data-group-id="4177081728-3">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-4">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2015-01-23 23:50:07]</span><span class="p" data-group-id="4177081728-4">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-5">(</span><span class="s">&quot;2015-01-23T23:50:07Z&quot;</span><span class="p" data-group-id="4177081728-5">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-6">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2015-01-23 23:50:07]</span><span class="p" data-group-id="4177081728-6">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-7">(</span><span class="s">&quot;2015-01-23 23:50:07.0&quot;</span><span class="p" data-group-id="4177081728-7">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-8">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2015-01-23 23:50:07.0]</span><span class="p" data-group-id="4177081728-8">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-9">(</span><span class="s">&quot;2015-01-23 23:50:07,0123456&quot;</span><span class="p" data-group-id="4177081728-9">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-10">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2015-01-23 23:50:07.012345]</span><span class="p" data-group-id="4177081728-10">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-11">(</span><span class="s">&quot;2015-01-23 23:50:07.0123456&quot;</span><span class="p" data-group-id="4177081728-11">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-12">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2015-01-23 23:50:07.012345]</span><span class="p" data-group-id="4177081728-12">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-13">(</span><span class="s">&quot;2015-01-23T23:50:07.123Z&quot;</span><span class="p" data-group-id="4177081728-13">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-14">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2015-01-23 23:50:07.123]</span><span class="p" data-group-id="4177081728-14">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-15">(</span><span class="s">&quot;2015-01-23P23:50:07&quot;</span><span class="p" data-group-id="4177081728-15">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-16">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_format</span><span class="p" data-group-id="4177081728-16">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-17">(</span><span class="s">&quot;2015:01:23 23-50-07&quot;</span><span class="p" data-group-id="4177081728-17">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-18">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_format</span><span class="p" data-group-id="4177081728-18">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-19">(</span><span class="s">&quot;2015-01-23 23:50:07A&quot;</span><span class="p" data-group-id="4177081728-19">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-20">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_format</span><span class="p" data-group-id="4177081728-20">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-21">(</span><span class="s">&quot;2015-01-23 23:50:61&quot;</span><span class="p" data-group-id="4177081728-21">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-22">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_time</span><span class="p" data-group-id="4177081728-22">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-23">(</span><span class="s">&quot;2015-01-32 23:50:07&quot;</span><span class="p" data-group-id="4177081728-23">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-24">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_date</span><span class="p" data-group-id="4177081728-24">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-25">(</span><span class="s">&quot;2015-01-23T23:50:07.123+02:30&quot;</span><span class="p" data-group-id="4177081728-25">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-26">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2015-01-23 23:50:07.123]</span><span class="p" data-group-id="4177081728-26">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-27">(</span><span class="s">&quot;2015-01-23T23:50:07.123+00:00&quot;</span><span class="p" data-group-id="4177081728-27">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-28">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2015-01-23 23:50:07.123]</span><span class="p" data-group-id="4177081728-28">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-29">(</span><span class="s">&quot;2015-01-23T23:50:07.123-02:30&quot;</span><span class="p" data-group-id="4177081728-29">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-30">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2015-01-23 23:50:07.123]</span><span class="p" data-group-id="4177081728-30">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-31">(</span><span class="s">&quot;2015-01-23T23:50:07.123-00:00&quot;</span><span class="p" data-group-id="4177081728-31">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-32">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_format</span><span class="p" data-group-id="4177081728-32">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-33">(</span><span class="s">&quot;2015-01-23T23:50:07.123-00:60&quot;</span><span class="p" data-group-id="4177081728-33">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-34">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_format</span><span class="p" data-group-id="4177081728-34">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">from_iso8601</span><span class="p" data-group-id="4177081728-35">(</span><span class="s">&quot;2015-01-23T23:50:07.123-24:00&quot;</span><span class="p" data-group-id="4177081728-35">)</span><span class="w">
</span><span class="p" data-group-id="4177081728-36">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_format</span><span class="p" data-group-id="4177081728-36">}</span></code></pre>
  </section>
</div>
<div class="detail" id="new/2">
    <div class="detail-header">
    <a href="#new/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">new(date, time)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L217" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>new(<a href="Date.html#t:t/0">Date.t</a>(), <a href="Time.html#t:t/0">Time.t</a>()) :: {:ok, <a href="#t:t/0">t</a>()}</pre>
      </div>
  </div>
  <section class="docstring">
<p>Builds a naive datetime from date and time structs.</p>
<h2 id="new/2-examples" class="section-heading">
  <a href="#new/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5458225939-1">(</span><span class="ld">~D[2010-01-13]</span><span class="p">,</span><span class="w"> </span><span class="sx">~T[23:00:07.005]</span><span class="p" data-group-id="5458225939-1">)</span><span class="w">
</span><span class="p" data-group-id="5458225939-2">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2010-01-13 23:00:07.005]</span><span class="p" data-group-id="5458225939-2">}</span></code></pre>
  </section>
</div>
<div class="detail" id="new/8">
  
    <span id="new/6"></span>

    <span id="new/7"></span>
  <div class="detail-header">
    <a href="#new/8" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">new(year, month, day, hour, minute, second, microsecond \\ {0, 0}, calendar \\ Calendar.ISO)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L181" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>new(
  <a href="Calendar.html#t:year/0">Calendar.year</a>(),
  <a href="Calendar.html#t:month/0">Calendar.month</a>(),
  <a href="Calendar.html#t:day/0">Calendar.day</a>(),
  <a href="Calendar.html#t:hour/0">Calendar.hour</a>(),
  <a href="Calendar.html#t:minute/0">Calendar.minute</a>(),
  <a href="Calendar.html#t:second/0">Calendar.second</a>(),
  <a href="Calendar.html#t:microsecond/0">Calendar.microsecond</a>(),
  <a href="Calendar.html#t:calendar/0">Calendar.calendar</a>()
) :: {:ok, <a href="#t:t/0">t</a>()} | {:error, <a href="typespecs.html#basic-types">atom</a>()}</pre>
      </div>
  </div>
  <section class="docstring">
<p>Builds a new ISO naive datetime.</p>
<p>Expects all values to be integers. Returns <code class="inline">{:ok, naive_datetime}</code>
if each entry fits its appropriate range, returns <code class="inline">{:error, reason}</code>
otherwise.</p>
<h2 id="new/8-examples" class="section-heading">
  <a href="#new/8-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5275485089-1">(</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="5275485089-1">)</span><span class="w">
</span><span class="p" data-group-id="5275485089-2">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2000-01-01 00:00:00]</span><span class="p" data-group-id="5275485089-2">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5275485089-3">(</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="5275485089-3">)</span><span class="w">
</span><span class="p" data-group-id="5275485089-4">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_date</span><span class="p" data-group-id="5275485089-4">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5275485089-5">(</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">29</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="5275485089-5">)</span><span class="w">
</span><span class="p" data-group-id="5275485089-6">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2000-02-29 00:00:00]</span><span class="p" data-group-id="5275485089-6">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5275485089-7">(</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="5275485089-7">)</span><span class="w">
</span><span class="p" data-group-id="5275485089-8">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_date</span><span class="p" data-group-id="5275485089-8">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5275485089-9">(</span><span class="mi">2001</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">29</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="5275485089-9">)</span><span class="w">
</span><span class="p" data-group-id="5275485089-10">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_date</span><span class="p" data-group-id="5275485089-10">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5275485089-11">(</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5275485089-12">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="5275485089-12">}</span><span class="p" data-group-id="5275485089-11">)</span><span class="w">
</span><span class="p" data-group-id="5275485089-13">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2000-01-01 23:59:59.0]</span><span class="p" data-group-id="5275485089-13">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5275485089-14">(</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="mi">999_999</span><span class="p" data-group-id="5275485089-14">)</span><span class="w">
</span><span class="p" data-group-id="5275485089-15">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2000-01-01 23:59:59.999999]</span><span class="p" data-group-id="5275485089-15">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5275485089-16">(</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="mi">60</span><span class="p">,</span><span class="w"> </span><span class="mi">999_999</span><span class="p" data-group-id="5275485089-16">)</span><span class="w">
</span><span class="p" data-group-id="5275485089-17">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2000-01-01 23:59:60.999999]</span><span class="p" data-group-id="5275485089-17">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5275485089-18">(</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">24</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="mi">999_999</span><span class="p" data-group-id="5275485089-18">)</span><span class="w">
</span><span class="p" data-group-id="5275485089-19">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_time</span><span class="p" data-group-id="5275485089-19">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5275485089-20">(</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="mi">60</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="mi">999_999</span><span class="p" data-group-id="5275485089-20">)</span><span class="w">
</span><span class="p" data-group-id="5275485089-21">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_time</span><span class="p" data-group-id="5275485089-21">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5275485089-22">(</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="mi">61</span><span class="p">,</span><span class="w"> </span><span class="mi">999_999</span><span class="p" data-group-id="5275485089-22">)</span><span class="w">
</span><span class="p" data-group-id="5275485089-23">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_time</span><span class="p" data-group-id="5275485089-23">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5275485089-24">(</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="mi">1_000_000</span><span class="p" data-group-id="5275485089-24">)</span><span class="w">
</span><span class="p" data-group-id="5275485089-25">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="ss">:invalid_time</span><span class="p" data-group-id="5275485089-25">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5275485089-26">(</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5275485089-27">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="5275485089-27">}</span><span class="p">,</span><span class="w"> </span><span class="nc">Calendar.ISO</span><span class="p" data-group-id="5275485089-26">)</span><span class="w">
</span><span class="p" data-group-id="5275485089-28">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="ld">~N[2000-01-01 23:59:59.0]</span><span class="p" data-group-id="5275485089-28">}</span></code></pre>
  </section>
</div>
<div class="detail" id="to_date/1">
    <div class="detail-header">
    <a href="#to_date/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">to_date(naive_date_time)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L364" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>to_date(<a href="#t:t/0">t</a>()) :: <a href="Date.html#t:t/0">Date.t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Converts a <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> into a <a href="Date.html"><code class="inline">Date</code></a>.</p>
<p>Because <a href="Date.html"><code class="inline">Date</code></a> does not hold time information,
data will be lost during the conversion.</p>
<h2 id="to_date/1-examples" class="section-heading">
  <a href="#to_date/1-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">to_date</span><span class="p" data-group-id="2194836911-1">(</span><span class="ld">~N[2002-01-13 23:00:07]</span><span class="p" data-group-id="2194836911-1">)</span><span class="w">
</span><span class="ld">~D[2002-01-13]</span></code></pre>
  </section>
</div>
<div class="detail" id="to_erl/1">
    <div class="detail-header">
    <a href="#to_erl/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">to_erl(naive_datetime)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L645" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>to_erl(<a href="Calendar.html#t:naive_datetime/0">Calendar.naive_datetime</a>()) :: <a href="http://www.erlang.org/doc/man/calendar.html#type-datetime">:calendar.datetime</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Converts a <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> struct to an Erlang datetime tuple.</p>
<p>Only supports converting naive datetimes which are in the ISO calendar,
attempting to convert naive datetimes from other calendars will raise.</p>
<p>WARNING: Loss of precision may occur, as Erlang time tuples only store
hour/minute/second.</p>
<h2 id="to_erl/1-examples" class="section-heading">
  <a href="#to_erl/1-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">to_erl</span><span class="p" data-group-id="8946720616-1">(</span><span class="ld">~N[2000-01-01 13:30:15]</span><span class="p" data-group-id="8946720616-1">)</span><span class="w">
</span><span class="p" data-group-id="8946720616-2">{</span><span class="p" data-group-id="8946720616-3">{</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="8946720616-3">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8946720616-4">{</span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p" data-group-id="8946720616-4">}</span><span class="p" data-group-id="8946720616-2">}</span></code></pre>
<p>This function can also be used to convert a DateTime to a erl format
without the time zone information:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="n">dt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="9347546833-1">%</span><span class="nc" data-group-id="9347546833-1">DateTime</span><span class="p" data-group-id="9347546833-1">{</span><span class="ss">year</span><span class="p">:</span><span class="w"> </span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="ss">month</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">day</span><span class="p">:</span><span class="w"> </span><span class="mi">29</span><span class="p">,</span><span class="w"> </span><span class="ss">zone_abbr</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;CET&quot;</span><span class="p">,</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">               </span><span class="ss">hour</span><span class="p">:</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="ss">minute</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="ss">second</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="ss">microsecond</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9347546833-2">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="9347546833-2">}</span><span class="p">,</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">               </span><span class="ss">utc_offset</span><span class="p">:</span><span class="w"> </span><span class="mi">3600</span><span class="p">,</span><span class="w"> </span><span class="ss">std_offset</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="ss">time_zone</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;Europe/Warsaw&quot;</span><span class="p" data-group-id="9347546833-1">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">to_erl</span><span class="p" data-group-id="9347546833-3">(</span><span class="n">dt</span><span class="p" data-group-id="9347546833-3">)</span><span class="w">
</span><span class="p" data-group-id="9347546833-4">{</span><span class="p" data-group-id="9347546833-5">{</span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">29</span><span class="p" data-group-id="9347546833-5">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="9347546833-6">{</span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="mi">00</span><span class="p">,</span><span class="w"> </span><span class="mi">07</span><span class="p" data-group-id="9347546833-6">}</span><span class="p" data-group-id="9347546833-4">}</span></code></pre>
  </section>
</div>
<div class="detail" id="to_iso8601/2">
  
    <span id="to_iso8601/1"></span>
  <div class="detail-header">
    <a href="#to_iso8601/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">to_iso8601(naive_datetime, format \\ :extended)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L614" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>to_iso8601(<a href="Calendar.html#t:naive_datetime/0">Calendar.naive_datetime</a>(), :basic | :extended) :: <a href="String.html#t:t/0">String.t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Converts the given naive datetime to
<a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601:2004</a>.</p>
<p>By default, <a href="NaiveDateTime.html#to_iso8601/2"><code class="inline">NaiveDateTime.to_iso8601/2</code></a> returns naive datetimes formatted in the “extended”
format, for human readability. It also supports the “basic” format through passing the <code class="inline">:basic</code> option.</p>
<p>Only supports converting naive datetimes which are in the ISO calendar,
attempting to convert naive datetimes from other calendars will raise.</p>
<h3 id="to_iso8601/2-examples" class="section-heading">
  <a href="#to_iso8601/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h3>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">to_iso8601</span><span class="p" data-group-id="7101102752-1">(</span><span class="ld">~N[2000-02-28 23:00:13]</span><span class="p" data-group-id="7101102752-1">)</span><span class="w">
</span><span class="s">&quot;2000-02-28T23:00:13&quot;</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">to_iso8601</span><span class="p" data-group-id="7101102752-2">(</span><span class="ld">~N[2000-02-28 23:00:13.001]</span><span class="p" data-group-id="7101102752-2">)</span><span class="w">
</span><span class="s">&quot;2000-02-28T23:00:13.001&quot;</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">to_iso8601</span><span class="p" data-group-id="7101102752-3">(</span><span class="ld">~N[2000-02-28 23:00:13.001]</span><span class="p">,</span><span class="w"> </span><span class="ss">:basic</span><span class="p" data-group-id="7101102752-3">)</span><span class="w">
</span><span class="s">&quot;20000228T230013.001&quot;</span></code></pre>
<p>This function can also be used to convert a DateTime to ISO 8601 without
the time zone information:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="n">dt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="0592852049-1">%</span><span class="nc" data-group-id="0592852049-1">DateTime</span><span class="p" data-group-id="0592852049-1">{</span><span class="ss">year</span><span class="p">:</span><span class="w"> </span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="ss">month</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">day</span><span class="p">:</span><span class="w"> </span><span class="mi">29</span><span class="p">,</span><span class="w"> </span><span class="ss">zone_abbr</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;CET&quot;</span><span class="p">,</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">               </span><span class="ss">hour</span><span class="p">:</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="ss">minute</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="ss">second</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="ss">microsecond</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="0592852049-2">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="0592852049-2">}</span><span class="p">,</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">               </span><span class="ss">utc_offset</span><span class="p">:</span><span class="w"> </span><span class="mi">3600</span><span class="p">,</span><span class="w"> </span><span class="ss">std_offset</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="ss">time_zone</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;Europe/Warsaw&quot;</span><span class="p" data-group-id="0592852049-1">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">to_iso8601</span><span class="p" data-group-id="0592852049-3">(</span><span class="n">dt</span><span class="p" data-group-id="0592852049-3">)</span><span class="w">
</span><span class="s">&quot;2000-02-29T23:00:07&quot;</span></code></pre>
  </section>
</div>
<div class="detail" id="to_string/1">
    <div class="detail-header">
    <a href="#to_string/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">to_string(naive_datetime)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L422" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>to_string(<a href="Calendar.html#t:naive_datetime/0">Calendar.naive_datetime</a>()) :: <a href="String.html#t:t/0">String.t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Converts the given naive datetime to a string according to its calendar.</p>
<h3 id="to_string/1-examples" class="section-heading">
  <a href="#to_string/1-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h3>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">to_string</span><span class="p" data-group-id="4311466705-1">(</span><span class="ld">~N[2000-02-28 23:00:13]</span><span class="p" data-group-id="4311466705-1">)</span><span class="w">
</span><span class="s">&quot;2000-02-28 23:00:13&quot;</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">to_string</span><span class="p" data-group-id="4311466705-2">(</span><span class="ld">~N[2000-02-28 23:00:13.001]</span><span class="p" data-group-id="4311466705-2">)</span><span class="w">
</span><span class="s">&quot;2000-02-28 23:00:13.001&quot;</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">to_string</span><span class="p" data-group-id="4311466705-3">(</span><span class="ld">~N[-0100-12-15 03:20:31]</span><span class="p" data-group-id="4311466705-3">)</span><span class="w">
</span><span class="s">&quot;-0100-12-15 03:20:31&quot;</span></code></pre>
<p>This function can also be used to convert a DateTime to a string without
the time zone information:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="n">dt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="1167247007-1">%</span><span class="nc" data-group-id="1167247007-1">DateTime</span><span class="p" data-group-id="1167247007-1">{</span><span class="ss">year</span><span class="p">:</span><span class="w"> </span><span class="mi">2000</span><span class="p">,</span><span class="w"> </span><span class="ss">month</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">day</span><span class="p">:</span><span class="w"> </span><span class="mi">29</span><span class="p">,</span><span class="w"> </span><span class="ss">zone_abbr</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;CET&quot;</span><span class="p">,</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">               </span><span class="ss">hour</span><span class="p">:</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="ss">minute</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="ss">second</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="ss">microsecond</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1167247007-2">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="1167247007-2">}</span><span class="p">,</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">               </span><span class="ss">utc_offset</span><span class="p">:</span><span class="w"> </span><span class="mi">3600</span><span class="p">,</span><span class="w"> </span><span class="ss">std_offset</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="ss">time_zone</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;Europe/Warsaw&quot;</span><span class="p" data-group-id="1167247007-1">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">to_string</span><span class="p" data-group-id="1167247007-3">(</span><span class="n">dt</span><span class="p" data-group-id="1167247007-3">)</span><span class="w">
</span><span class="s">&quot;2000-02-29 23:00:07&quot;</span></code></pre>
  </section>
</div>
<div class="detail" id="to_time/1">
    <div class="detail-header">
    <a href="#to_time/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">to_time(naive_datetime)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L381" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>to_time(<a href="#t:t/0">t</a>()) :: <a href="Time.html#t:t/0">Time.t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Converts a <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a> into <a href="Time.html"><code class="inline">Time</code></a>.</p>
<p>Because <a href="Time.html"><code class="inline">Time</code></a> does not hold date information,
data will be lost during the conversion.</p>
<h2 id="to_time/1-examples" class="section-heading">
  <a href="#to_time/1-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">to_time</span><span class="p" data-group-id="3411557248-1">(</span><span class="ld">~N[2002-01-13 23:00:07]</span><span class="p" data-group-id="3411557248-1">)</span><span class="w">
</span><span class="sx">~T[23:00:07]</span></code></pre>
  </section>
</div>
<div class="detail" id="truncate/2">
    <div class="detail-header">
    <a href="#truncate/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">truncate(naive_datetime, precision)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L347" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
    
      <span class="note">(since 1.6.0)</span>
    
      <div class="specs">
          <pre>truncate(<a href="#t:t/0">t</a>(), :microsecond | :millisecond | :second) :: <a href="#t:t/0">t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns the given naive datetime with the microsecond field truncated to the
given precision (<code class="inline">:microsecond</code>, <code class="inline">:millisecond</code> or <code class="inline">:second</code>).</p>
<h2 id="truncate/2-examples" class="section-heading">
  <a href="#truncate/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">truncate</span><span class="p" data-group-id="7599954874-1">(</span><span class="ld">~N[2017-11-06 00:23:51.123456]</span><span class="p">,</span><span class="w"> </span><span class="ss">:microsecond</span><span class="p" data-group-id="7599954874-1">)</span><span class="w">
</span><span class="ld">~N[2017-11-06 00:23:51.123456]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">truncate</span><span class="p" data-group-id="7599954874-2">(</span><span class="ld">~N[2017-11-06 00:23:51.123456]</span><span class="p">,</span><span class="w"> </span><span class="ss">:millisecond</span><span class="p" data-group-id="7599954874-2">)</span><span class="w">
</span><span class="ld">~N[2017-11-06 00:23:51.123]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">truncate</span><span class="p" data-group-id="7599954874-3">(</span><span class="ld">~N[2017-11-06 00:23:51.123456]</span><span class="p">,</span><span class="w"> </span><span class="ss">:second</span><span class="p" data-group-id="7599954874-3">)</span><span class="w">
</span><span class="ld">~N[2017-11-06 00:23:51]</span></code></pre>
  </section>
</div>
<div class="detail" id="utc_now/1">
  
    <span id="utc_now/0"></span>
  <div class="detail-header">
    <a href="#utc_now/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">utc_now(calendar \\ Calendar.ISO)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/calendar/naive_datetime.ex#L119" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
    
      <span class="note">(since 1.4.0)</span>
    
      <div class="specs">
          <pre>utc_now(<a href="Calendar.html#t:calendar/0">Calendar.calendar</a>()) :: <a href="#t:t/0">t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns the current naive datetime in UTC.</p>
<p>Prefer using <a href="DateTime.html#utc_now/0"><code class="inline">DateTime.utc_now/0</code></a> when possible as, opposite
to <a href="NaiveDateTime.html#content"><code class="inline">NaiveDateTime</code></a>, it will keep the time zone information.</p>
<h2 id="utc_now/1-examples" class="section-heading">
  <a href="#utc_now/1-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="n">naive_datetime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">NaiveDateTime</span><span class="o">.</span><span class="n">utc_now</span><span class="p" data-group-id="8988250263-1">(</span><span class="p" data-group-id="8988250263-1">)</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">naive_datetime</span><span class="o">.</span><span class="n">year</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mi">2016</span><span class="w">
</span><span class="no">true</span></code></pre>
  </section>
</div>
        </section>

          <footer class="footer">
        <p>
          <span class="line">
            Built using
            <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener">ExDoc</a> (v0.19.1),
          </span>
          <span class="line">
            designed by
            <a href="https://twitter.com/dignifiedquire" target="_blank" rel="noopener" title="@dignifiedquire">Friedel Ziegelmayer</a>.
            </span>
        </p>
      </footer>
    </div>
  </div>
</section>
</div>
  <script src="dist/app-a0c90688fa.js"></script>
  
  </body>
</html>