<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Data.UnixTime</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ window.onload = function () {pageLoad();setSynopsis("mini_Data-UnixTime.html");}; //]]> </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Data-UnixTime.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">unix-time-0.1.5: Unix time parser/formatter and utilities</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Data.UnixTime</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Data structure </a></li><li><a href="#g:2">Getting time </a></li><li><a href="#g:3">Parsing and formatting time </a></li><li><a href="#g:4">Fromat </a></li><li><a href="#g:5">Difference time </a></li><li><a href="#g:6">Translating time </a></li></ul></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:UnixTime">UnixTime</a> = <a href="#v:UnixTime">UnixTime</a> {<ul class="subs"><li><a href="#v:utSeconds">utSeconds</a> :: !<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Foreign-C-Types.html#t:CTime">CTime</a></li><li><a href="#v:utMicroSeconds">utMicroSeconds</a> :: !<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int32">Int32</a></li></ul>}</li><li class="src short"><a href="#v:getUnixTime">getUnixTime</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></li><li class="src short"><a href="#v:parseUnixTime">parseUnixTime</a> :: <a href="Data-UnixTime.html#t:Format">Format</a> -> <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></li><li class="src short"><a href="#v:parseUnixTimeGMT">parseUnixTimeGMT</a> :: <a href="Data-UnixTime.html#t:Format">Format</a> -> <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></li><li class="src short"><a href="#v:formatUnixTime">formatUnixTime</a> :: <a href="Data-UnixTime.html#t:Format">Format</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></li><li class="src short"><a href="#v:formatUnixTimeGMT">formatUnixTimeGMT</a> :: <a href="Data-UnixTime.html#t:Format">Format</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:Format">Format</a> = <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></li><li class="src short"><a href="#v:webDateFormat">webDateFormat</a> :: <a href="Data-UnixTime.html#t:Format">Format</a></li><li class="src short"><a href="#v:mailDateFormat">mailDateFormat</a> :: <a href="Data-UnixTime.html#t:Format">Format</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:UnixDiffTime">UnixDiffTime</a> </li><li class="src short"><a href="#v:diffUnixTime">diffUnixTime</a> :: <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="Data-UnixTime.html#t:UnixDiffTime">UnixDiffTime</a></li><li class="src short"><a href="#v:addUnixDiffTime">addUnixDiffTime</a> :: <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="Data-UnixTime.html#t:UnixDiffTime">UnixDiffTime</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></li><li class="src short"><a href="#v:secondsToUnixDiffTime">secondsToUnixDiffTime</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a => a -> <a href="Data-UnixTime.html#t:UnixDiffTime">UnixDiffTime</a></li><li class="src short"><a href="#v:microSecondsToUnixDiffTime">microSecondsToUnixDiffTime</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a => a -> <a href="Data-UnixTime.html#t:UnixDiffTime">UnixDiffTime</a></li><li class="src short"><a href="#v:fromEpochTime">fromEpochTime</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-Posix-Types.html#t:EpochTime">EpochTime</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></li><li class="src short"><a href="#v:toEpochTime">toEpochTime</a> :: <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-Posix-Types.html#t:EpochTime">EpochTime</a></li><li class="src short"><a href="#v:fromClockTime">fromClockTime</a> :: <a href="/usr/share/doc/ghc/html/libraries/old-time-1.1.0.0/System-Time.html#t:ClockTime">ClockTime</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></li><li class="src short"><a href="#v:toClockTime">toClockTime</a> :: <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="/usr/share/doc/ghc/html/libraries/old-time-1.1.0.0/System-Time.html#t:ClockTime">ClockTime</a></li></ul></div><div id="interface"><h1 id="g:1">Data structure </h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:UnixTime" class="def">UnixTime</a> <a href="src/Data-UnixTime-Types.html#UnixTime" class="link">Source</a></p><div class="doc"><p>Data structure for Unix time. </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:UnixTime" class="def">UnixTime</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:utSeconds" class="def">utSeconds</a> :: !<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Foreign-C-Types.html#t:CTime">CTime</a></dt><dd class="doc"><p>Seconds from 1st Jan 1970 </p></dd><dt class="src"><a name="v:utMicroSeconds" class="def">utMicroSeconds</a> :: !<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int32">Int32</a></dt><dd class="doc"><p>Micro seconds (i.e. 10^(-6)) </p></dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:UnixTime" class="caption collapser" onclick="toggleSection('i:UnixTime')">Instances</p><div id="section.i:UnixTime" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></td><td class="doc empty"> </td></tr></table></div></div></div><h1 id="g:2">Getting time </h1><div class="top"><p class="src"><a name="v:getUnixTime" class="def">getUnixTime</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a><a href="src/Data-UnixTime-Sys.html#getUnixTime" class="link">Source</a></p><div class="doc"><p>Getting <code><a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></code> from OS. </p></div></div><h1 id="g:3">Parsing and formatting time </h1><div class="top"><p class="src"><a name="v:parseUnixTime" class="def">parseUnixTime</a> :: <a href="Data-UnixTime.html#t:Format">Format</a> -> <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a><a href="src/Data-UnixTime-Conv.html#parseUnixTime" class="link">Source</a></p><div class="doc"><p>Parsing <code><a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></code> to <code><a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></code> interpreting as localtime. This is a wrapper for strptime_l(). Many implementations of strptime_l() do not support %Z and some implementations of strptime_l() do not support %z, either. </p></div></div><div class="top"><p class="src"><a name="v:parseUnixTimeGMT" class="def">parseUnixTimeGMT</a> :: <a href="Data-UnixTime.html#t:Format">Format</a> -> <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a><a href="src/Data-UnixTime-Conv.html#parseUnixTimeGMT" class="link">Source</a></p><div class="doc"><p>Parsing <code><a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></code> to <code><a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></code> interpreting as GMT. This is a wrapper for strptime_l(). </p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>parseUnixTimeGMT webDateFormat "Thu, 01 Jan 1970 00:00:00 GMT" </code></strong>UnixTime {utSeconds = 0, utMicroSeconds = 0} </pre></div></div><div class="top"><p class="src"><a name="v:formatUnixTime" class="def">formatUnixTime</a> :: <a href="Data-UnixTime.html#t:Format">Format</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a><a href="src/Data-UnixTime-Conv.html#formatUnixTime" class="link">Source</a></p><div class="doc"><p>Formatting <code><a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></code> to <code><a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></code> in local time. This is a wrapper for strftime_l(). </p></div></div><div class="top"><p class="src"><a name="v:formatUnixTimeGMT" class="def">formatUnixTimeGMT</a> :: <a href="Data-UnixTime.html#t:Format">Format</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a><a href="src/Data-UnixTime-Conv.html#formatUnixTimeGMT" class="link">Source</a></p><div class="doc"><p>Formatting <code><a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></code> to <code><a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></code> in GMT. This is a wrapper for strftime_l(). </p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>formatUnixTimeGMT webDateFormat $ UnixTime 0 0 </code></strong>"Thu, 01 Jan 1970 00:00:00 GMT" </pre></div></div><h1 id="g:4">Fromat </h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Format" class="def">Format</a> = <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a><a href="src/Data-UnixTime-Types.html#Format" class="link">Source</a></p><div class="doc"><p>Format of the strptime()/strftime() style. </p></div></div><div class="top"><p class="src"><a name="v:webDateFormat" class="def">webDateFormat</a> :: <a href="Data-UnixTime.html#t:Format">Format</a><a href="src/Data-UnixTime-Conv.html#webDateFormat" class="link">Source</a></p><div class="doc"><p>Format for web (RFC 2616). The value is "%a, %d %b %Y %H:%M:%S GMT". This should be used with <code><a href="Data-UnixTime.html#v:formatUnixTimeGMT">formatUnixTimeGMT</a></code> and <code><a href="Data-UnixTime.html#v:parseUnixTimeGMT">parseUnixTimeGMT</a></code>. </p></div></div><div class="top"><p class="src"><a name="v:mailDateFormat" class="def">mailDateFormat</a> :: <a href="Data-UnixTime.html#t:Format">Format</a><a href="src/Data-UnixTime-Conv.html#mailDateFormat" class="link">Source</a></p><div class="doc"><p>Format for e-mail (RFC 5322). The value is "%a, %d %b %Y %H:%M:%S %z". This should be used with <code><a href="Data-UnixTime.html#v:formatUnixTime">formatUnixTime</a></code> and <code><a href="Data-UnixTime.html#v:parseUnixTime">parseUnixTime</a></code>. </p></div></div><h1 id="g:5">Difference time </h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:UnixDiffTime" class="def">UnixDiffTime</a> <a href="src/Data-UnixTime-Types.html#UnixDiffTime" class="link">Source</a></p><div class="doc"><p>Data structure for UnixTime diff. </p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(3 :: UnixDiffTime) + 2 </code></strong>UnixDiffTime 5 0 <code class="prompt">>>> </code><strong class="userinput"><code>(2 :: UnixDiffTime) - 5 </code></strong>UnixDiffTime (-3) 0 <code class="prompt">>>> </code><strong class="userinput"><code>(3 :: UnixDiffTime) * 2 </code></strong>UnixDiffTime 6 0 </pre></div><div class="subs instances"><p id="control.i:UnixDiffTime" class="caption collapser" onclick="toggleSection('i:UnixDiffTime')">Instances</p><div id="section.i:UnixDiffTime" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Data-UnixTime.html#t:UnixDiffTime">UnixDiffTime</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> <a href="Data-UnixTime.html#t:UnixDiffTime">UnixDiffTime</a></td><td class="doc"><p>Arithmetic operations where (1::UnixDiffTime) means 1 second. </p></td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Data-UnixTime.html#t:UnixDiffTime">UnixDiffTime</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Real">Real</a> <a href="Data-UnixTime.html#t:UnixDiffTime">UnixDiffTime</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> <a href="Data-UnixTime.html#t:UnixDiffTime">UnixDiffTime</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:diffUnixTime" class="def">diffUnixTime</a> :: <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="Data-UnixTime.html#t:UnixDiffTime">UnixDiffTime</a><a href="src/Data-UnixTime-Diff.html#diffUnixTime" class="link">Source</a></p><div class="doc"><p>Calculating difference between two <code><a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></code>. </p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>UnixTime 100 2000 `diffUnixTime` UnixTime 98 2100 </code></strong>UnixDiffTime 1 999900 </pre></div></div><div class="top"><p class="src"><a name="v:addUnixDiffTime" class="def">addUnixDiffTime</a> :: <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="Data-UnixTime.html#t:UnixDiffTime">UnixDiffTime</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a><a href="src/Data-UnixTime-Diff.html#addUnixDiffTime" class="link">Source</a></p><div class="doc"><p>Adding difference to <code><a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></code>. </p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>UnixTime 100 2000 `addUnixDiffTime` microSecondsToUnixDiffTime (-1003000) </code></strong>UnixTime {utSeconds = 98, utMicroSeconds = 999000} </pre></div></div><div class="top"><p class="src"><a name="v:secondsToUnixDiffTime" class="def">secondsToUnixDiffTime</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a => a -> <a href="Data-UnixTime.html#t:UnixDiffTime">UnixDiffTime</a><a href="src/Data-UnixTime-Diff.html#secondsToUnixDiffTime" class="link">Source</a></p><div class="doc"><p>Creating difference from seconds. </p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>secondsToUnixDiffTime 100 </code></strong>UnixDiffTime 100 0 </pre></div></div><div class="top"><p class="src"><a name="v:microSecondsToUnixDiffTime" class="def">microSecondsToUnixDiffTime</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> a => a -> <a href="Data-UnixTime.html#t:UnixDiffTime">UnixDiffTime</a><a href="src/Data-UnixTime-Diff.html#microSecondsToUnixDiffTime" class="link">Source</a></p><div class="doc"><p>Creating difference from micro seconds. </p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>microSecondsToUnixDiffTime 12345678 </code></strong>UnixDiffTime 12 345678 </pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>microSecondsToUnixDiffTime (-12345678) </code></strong>UnixDiffTime (-12) (-345678) </pre></div></div><h1 id="g:6">Translating time </h1><div class="top"><p class="src"><a name="v:fromEpochTime" class="def">fromEpochTime</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-Posix-Types.html#t:EpochTime">EpochTime</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a><a href="src/Data-UnixTime-Conv.html#fromEpochTime" class="link">Source</a></p><div class="doc"><p>From <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-Posix-Types.html#t:EpochTime">EpochTime</a></code> to <code><a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></code> setting <code><a href="Data-UnixTime.html#v:utMicroSeconds">utMicroSeconds</a></code> to 0. </p></div></div><div class="top"><p class="src"><a name="v:toEpochTime" class="def">toEpochTime</a> :: <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-Posix-Types.html#t:EpochTime">EpochTime</a><a href="src/Data-UnixTime-Conv.html#toEpochTime" class="link">Source</a></p><div class="doc"><p>From <code><a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></code> to <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-Posix-Types.html#t:EpochTime">EpochTime</a></code> ignoring <code><a href="Data-UnixTime.html#v:utMicroSeconds">utMicroSeconds</a></code>. </p></div></div><div class="top"><p class="src"><a name="v:fromClockTime" class="def">fromClockTime</a> :: <a href="/usr/share/doc/ghc/html/libraries/old-time-1.1.0.0/System-Time.html#t:ClockTime">ClockTime</a> -> <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a><a href="src/Data-UnixTime-Conv.html#fromClockTime" class="link">Source</a></p><div class="doc"><p>From <code><a href="/usr/share/doc/ghc/html/libraries/old-time-1.1.0.0/System-Time.html#t:ClockTime">ClockTime</a></code> to <code><a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></code>. </p></div></div><div class="top"><p class="src"><a name="v:toClockTime" class="def">toClockTime</a> :: <a href="Data-UnixTime.html#t:UnixTime">UnixTime</a> -> <a href="/usr/share/doc/ghc/html/libraries/old-time-1.1.0.0/System-Time.html#t:ClockTime">ClockTime</a><a href="src/Data-UnixTime-Conv.html#toClockTime" class="link">Source</a></p><div class="doc"><p>From <code><a href="Data-UnixTime.html#t:UnixTime">UnixTime</a></code> to <code><a href="/usr/share/doc/ghc/html/libraries/old-time-1.1.0.0/System-Time.html#t:ClockTime">ClockTime</a></code>. </p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>