Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
Represents a precise time, with seconds and microseconds.
Similar to the struct timeval returned by the gettimeofday()
UNIX system call.
GLib is attempting to unify around the use of 64bit integers to
represent microsecond-precision time. As such, this type will be
removed from a future version of GLib. A consequence of using glong
for
tv_sec
is that on 32-bit systems GTimeVal
is subject to the year 2038
problem.
Synopsis
- newtype TimeVal = TimeVal (ManagedPtr TimeVal)
- newZeroTimeVal :: MonadIO m => m TimeVal
- noTimeVal :: Maybe TimeVal
- timeValAdd :: (HasCallStack, MonadIO m) => TimeVal -> CLong -> m ()
- timeValFromIso8601 :: (HasCallStack, MonadIO m) => Text -> m (Bool, TimeVal)
- timeValToIso8601 :: (HasCallStack, MonadIO m) => TimeVal -> m (Maybe Text)
- getTimeValTvSec :: MonadIO m => TimeVal -> m CLong
- setTimeValTvSec :: MonadIO m => TimeVal -> CLong -> m ()
- getTimeValTvUsec :: MonadIO m => TimeVal -> m CLong
- setTimeValTvUsec :: MonadIO m => TimeVal -> CLong -> m ()
Exported types
Memory-managed wrapper type.
Instances
Eq TimeVal Source # | |
WrappedPtr TimeVal Source # | |
Defined in GI.GLib.Structs.TimeVal wrappedPtrCalloc :: IO (Ptr TimeVal) # wrappedPtrCopy :: TimeVal -> IO TimeVal # | |
tag ~ 'AttrSet => Constructible TimeVal tag Source # | |
Defined in GI.GLib.Structs.TimeVal |
Methods
Overloaded methods
add
:: (HasCallStack, MonadIO m) | |
=> TimeVal |
|
-> CLong |
|
-> m () |
Adds the given number of microseconds to time_
. microseconds
can
also be negative to decrease the value of time_
.
fromIso8601
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> m (Bool, TimeVal) | Returns: |
Converts a string containing an ISO 8601 encoded date and time
to a TimeVal
and puts it into time_
.
isoDate
must include year, month, day, hours, minutes, and
seconds. It can optionally include fractions of a second and a time
zone indicator. (In the absence of any time zone indication, the
timestamp is assumed to be in local time.)
Any leading or trailing space in isoDate
is ignored.
Since: 2.12
toIso8601
:: (HasCallStack, MonadIO m) | |
=> TimeVal |
|
-> m (Maybe Text) | Returns: a newly allocated string containing an ISO 8601 date,
or |
Converts time_
into an RFC 3339 encoded string, relative to the
Coordinated Universal Time (UTC). This is one of the many formats
allowed by ISO 8601.
ISO 8601 allows a large number of date/time formats, with or without
punctuation and optional elements. The format returned by this function
is a complete date and time, with optional punctuation included, the
UTC time zone represented as "Z", and the tvUsec
part included if
and only if it is nonzero, i.e. either
"YYYY-MM-DDTHH:MM:SSZ" or "YYYY-MM-DDTHH:MM:SS.fffffZ".
This corresponds to the Internet date/time format defined by RFC 3339, and to either of the two most-precise formats defined by the W3C Note Date and Time Formats. Both of these documents are profiles of ISO 8601.
Use dateTimeFormat
or g_strdup_printf()
if a different
variation of ISO 8601 format is required.
If time_
represents a date which is too large to fit into a struct tm
,
Nothing
will be returned. This is platform dependent. Note also that since
GTimeVal
stores the number of seconds as a glong
, on 32-bit systems it
is subject to the year 2038 problem.
The return value of timeValToIso8601
has been nullable since GLib
2.54; before then, GLib would crash under the same conditions.
Since: 2.12
Properties
tvSec
seconds
getTimeValTvSec :: MonadIO m => TimeVal -> m CLong Source #
Get the value of the “tv_sec
” field.
When overloading is enabled, this is equivalent to
get
timeVal #tvSec
setTimeValTvSec :: MonadIO m => TimeVal -> CLong -> m () Source #
Set the value of the “tv_sec
” field.
When overloading is enabled, this is equivalent to
set
timeVal [ #tvSec:=
value ]
tvUsec
microseconds
getTimeValTvUsec :: MonadIO m => TimeVal -> m CLong Source #
Get the value of the “tv_usec
” field.
When overloading is enabled, this is equivalent to
get
timeVal #tvUsec
setTimeValTvUsec :: MonadIO m => TimeVal -> CLong -> m () Source #
Set the value of the “tv_usec
” field.
When overloading is enabled, this is equivalent to
set
timeVal [ #tvUsec:=
value ]