Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (inaki@blueleaf.cc) |
Safe Haskell | None |
Language | Haskell2010 |
- Exported types
- Methods
- getDay
- getHour
- getMicrosecond
- getMinute
- getMonth
- getSecond
- getTimeZoneOffset
- getYear
- hasDay
- hasMonth
- hasSecond
- hasTime
- hasYear
- new
- newFromGDateTime
- newFromIso8601String
- newFromUnixEpochLocalTime
- newFromUnixEpochUtc
- newLocalTime
- newNowLocalTime
- newNowUtc
- newY
- newYm
- newYmd
- ref
- toGDateTime
- toIso8601String
- unref
Struct to store date, time and timezone information altogether.
DateTime
is refcounted and immutable.
Date information is handled using the proleptic Gregorian calendar.
Provides basic creation functions and accessor functions to its fields.
Synopsis
- newtype DateTime = DateTime (ManagedPtr DateTime)
- noDateTime :: Maybe DateTime
- dateTimeGetDay :: (HasCallStack, MonadIO m) => DateTime -> m Int32
- dateTimeGetHour :: (HasCallStack, MonadIO m) => DateTime -> m Int32
- dateTimeGetMicrosecond :: (HasCallStack, MonadIO m) => DateTime -> m Int32
- dateTimeGetMinute :: (HasCallStack, MonadIO m) => DateTime -> m Int32
- dateTimeGetMonth :: (HasCallStack, MonadIO m) => DateTime -> m Int32
- dateTimeGetSecond :: (HasCallStack, MonadIO m) => DateTime -> m Int32
- dateTimeGetTimeZoneOffset :: (HasCallStack, MonadIO m) => DateTime -> m Float
- dateTimeGetYear :: (HasCallStack, MonadIO m) => DateTime -> m Int32
- dateTimeHasDay :: (HasCallStack, MonadIO m) => DateTime -> m Bool
- dateTimeHasMonth :: (HasCallStack, MonadIO m) => DateTime -> m Bool
- dateTimeHasSecond :: (HasCallStack, MonadIO m) => DateTime -> m Bool
- dateTimeHasTime :: (HasCallStack, MonadIO m) => DateTime -> m Bool
- dateTimeHasYear :: (HasCallStack, MonadIO m) => DateTime -> m Bool
- dateTimeNew :: (HasCallStack, MonadIO m) => Float -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Double -> m DateTime
- dateTimeNewFromGDateTime :: (HasCallStack, MonadIO m) => DateTime -> m (Maybe DateTime)
- dateTimeNewFromIso8601String :: (HasCallStack, MonadIO m) => Text -> m (Maybe DateTime)
- dateTimeNewFromUnixEpochLocalTime :: (HasCallStack, MonadIO m) => Int64 -> m DateTime
- dateTimeNewFromUnixEpochUtc :: (HasCallStack, MonadIO m) => Int64 -> m DateTime
- dateTimeNewLocalTime :: (HasCallStack, MonadIO m) => Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Double -> m DateTime
- dateTimeNewNowLocalTime :: (HasCallStack, MonadIO m) => m DateTime
- dateTimeNewNowUtc :: (HasCallStack, MonadIO m) => m DateTime
- dateTimeNewY :: (HasCallStack, MonadIO m) => Int32 -> m DateTime
- dateTimeNewYm :: (HasCallStack, MonadIO m) => Int32 -> Int32 -> m DateTime
- dateTimeNewYmd :: (HasCallStack, MonadIO m) => Int32 -> Int32 -> Int32 -> m DateTime
- dateTimeRef :: (HasCallStack, MonadIO m) => DateTime -> m DateTime
- dateTimeToGDateTime :: (HasCallStack, MonadIO m) => DateTime -> m (Maybe DateTime)
- dateTimeToIso8601String :: (HasCallStack, MonadIO m) => DateTime -> m (Maybe Text)
- dateTimeUnref :: (HasCallStack, MonadIO m) => DateTime -> m ()
Exported types
Memory-managed wrapper type.
Methods
getDay
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m Int32 | Returns: The day of this |
Returns the day of the month of this DateTime
.
Call dateTimeHasDay
before, to avoid warnings.
getHour
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m Int32 | Returns: the hour of the day |
Retrieves the hour of the day represented by datetime
in the gregorian
calendar. The return is in the range of 0 to 23.
Call dateTimeHasTime
before, to avoid warnings.
getMicrosecond
dateTimeGetMicrosecond Source #
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m Int32 | Returns: the microsecond of the second |
Retrieves the fractional part of the seconds in microseconds represented by
datetime
in the gregorian calendar.
getMinute
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m Int32 | Returns: the minute of the hour |
Retrieves the minute of the hour represented by datetime
in the gregorian
calendar.
Call dateTimeHasTime
before, to avoid warnings.
getMonth
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m Int32 | Returns: The month of this |
Returns the month of this DateTime
. January is 1, February is 2, etc..
Call dateTimeHasMonth
before, to avoid warnings.
getSecond
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m Int32 | Returns: the second represented by |
Retrieves the second of the minute represented by datetime
in the gregorian
calendar.
Call dateTimeHasTime
before, to avoid warnings.
getTimeZoneOffset
dateTimeGetTimeZoneOffset Source #
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m Float | Returns: the offset from UTC in hours |
Retrieves the offset from UTC in hours that the timezone specified
by datetime
represents. Timezones ahead (to the east) of UTC have positive
values, timezones before (to the west) of UTC have negative values.
If datetime
represents UTC time, then the offset is zero.
getYear
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m Int32 | Returns: The year of this |
Returns the year of this DateTime
Call dateTimeHasYear
before, to avoid warnings.
hasDay
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m Bool | Returns: |
No description available in the introspection data.
hasMonth
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m Bool | Returns: |
No description available in the introspection data.
hasSecond
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m Bool | Returns: |
No description available in the introspection data.
hasTime
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m Bool | Returns: |
No description available in the introspection data.
hasYear
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m Bool | Returns: |
No description available in the introspection data.
new
:: (HasCallStack, MonadIO m) | |
=> Float |
|
-> Int32 |
|
-> Int32 |
|
-> Int32 |
|
-> Int32 |
|
-> Int32 |
|
-> Double |
|
-> m DateTime | Returns: the newly created |
Creates a new DateTime
using the date and times in the gregorian calendar
in the supplied timezone.
year
should be from 1 to 9999, month
should be from 1 to 12, day
from
1 to 31, hour
from 0 to 23, minutes
and seconds
from 0 to 59.
Note that tzoffset
is a float and was chosen so for being able to handle
some fractional timezones, while it still keeps the readability of
representing it in hours for most timezones.
If value is -1 then all over value will be ignored. For example
if month
== -1, then DateTime
will created only for year
. If
day
== -1, then DateTime
will created for year
and month
and
so on.
Free-function: gst_date_time_unref
newFromGDateTime
dateTimeNewFromGDateTime Source #
:: (HasCallStack, MonadIO m) | |
=> DateTime | |
-> m (Maybe DateTime) |
newFromIso8601String
dateTimeNewFromIso8601String Source #
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> m (Maybe DateTime) |
Tries to parse common variants of ISO-8601 datetime strings into a
DateTime
. Possible input formats are (for example):
2012-06-30T22:46:43Z, 2012, 2012-06, 2012-06-30, 2012-06-30T22:46:43-0430,
2012-06-30T22:46Z, 2012-06-30T22:46-0430, 2012-06-30 22:46,
2012-06-30 22:46:43, 2012-06-00, 2012-00-00, 2012-00-30, 22:46:43Z, 22:46Z,
22:46:43-0430, 22:46-0430, 22:46:30, 22:46
If no date is provided, it is assumed to be "today" in the timezone
provided (if any), otherwise UTC.
Free-function: gst_date_time_unref
newFromUnixEpochLocalTime
dateTimeNewFromUnixEpochLocalTime Source #
:: (HasCallStack, MonadIO m) | |
=> Int64 |
|
-> m DateTime | Returns: the newly created |
newFromUnixEpochUtc
dateTimeNewFromUnixEpochUtc Source #
:: (HasCallStack, MonadIO m) | |
=> Int64 |
|
-> m DateTime | Returns: the newly created |
newLocalTime
:: (HasCallStack, MonadIO m) | |
=> Int32 |
|
-> Int32 |
|
-> Int32 |
|
-> Int32 |
|
-> Int32 |
|
-> Double |
|
-> m DateTime | Returns: the newly created |
Creates a new DateTime
using the date and times in the gregorian calendar
in the local timezone.
year
should be from 1 to 9999, month
should be from 1 to 12, day
from
1 to 31, hour
from 0 to 23, minutes
and seconds
from 0 to 59.
If month
is -1, then the DateTime
created will only contain year
,
and all other fields will be considered not set.
If day
is -1, then the DateTime
created will only contain year
and
month
and all other fields will be considered not set.
If hour
is -1, then the DateTime
created will only contain year
and
month
and day
, and the time fields will be considered not set. In this
case minute
and seconds
should also be -1.
Free-function: gst_date_time_unref
newNowLocalTime
dateTimeNewNowLocalTime Source #
:: (HasCallStack, MonadIO m) | |
=> m DateTime | Returns: the newly created |
Creates a new DateTime
representing the current date and time.
Free-function: gst_date_time_unref
newNowUtc
:: (HasCallStack, MonadIO m) | |
=> m DateTime | Returns: the newly created |
Creates a new DateTime
that represents the current instant at Universal
coordinated time.
Free-function: gst_date_time_unref
newY
:: (HasCallStack, MonadIO m) | |
=> Int32 |
|
-> m DateTime | Returns: the newly created |
Creates a new DateTime
using the date and times in the gregorian calendar
in the local timezone.
year
should be from 1 to 9999.
Free-function: gst_date_time_unref
newYm
:: (HasCallStack, MonadIO m) | |
=> Int32 |
|
-> Int32 |
|
-> m DateTime | Returns: the newly created |
Creates a new DateTime
using the date and times in the gregorian calendar
in the local timezone.
year
should be from 1 to 9999, month
should be from 1 to 12.
If value is -1 then all over value will be ignored. For example
if month
== -1, then DateTime
will created only for year
.
Free-function: gst_date_time_unref
newYmd
:: (HasCallStack, MonadIO m) | |
=> Int32 |
|
-> Int32 |
|
-> Int32 |
|
-> m DateTime | Returns: the newly created |
Creates a new DateTime
using the date and times in the gregorian calendar
in the local timezone.
year
should be from 1 to 9999, month
should be from 1 to 12, day
from
1 to 31.
If value is -1 then all over value will be ignored. For example
if month
== -1, then DateTime
will created only for year
. If
day
== -1, then DateTime
will created for year
and month
and
so on.
Free-function: gst_date_time_unref
ref
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m DateTime | Returns: the reference |
Atomically increments the reference count of datetime
by one.
toGDateTime
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m (Maybe DateTime) |
toIso8601String
dateTimeToIso8601String Source #
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m (Maybe Text) | Returns: a newly allocated string formatted according
to ISO 8601 and only including the datetime fields that are
valid, or |
Create a minimal string compatible with ISO-8601. Possible output formats are (for example): 2012, 2012-06, 2012-06-23, 2012-06-23T23:30Z, 2012-06-23T23:30+0100, 2012-06-23T23:30:59Z, 2012-06-23T23:30:59+0100
unref
:: (HasCallStack, MonadIO m) | |
=> DateTime |
|
-> m () |
Atomically decrements the reference count of datetime
by one. When the
reference count reaches zero, the structure is freed.