|
|
|
|
@ -38,7 +38,7 @@
|
|
|
|
|
stores and use UNIVERSAL TIME internally. Universal time is the
|
|
|
|
|
'one true time' that is independent of one's location on planet
|
|
|
|
|
Earth. It is measured in seconds from midnight January 1, 1970
|
|
|
|
|
in localtime-Grenwich (GMT). If one wants to display the local
|
|
|
|
|
in localtime-Greenwich (GMT). If one wants to display the local
|
|
|
|
|
time, then the display-print routine should make all final
|
|
|
|
|
tweaks to print the local time. The local time *must not* be
|
|
|
|
|
kept as a numeric value anywhere in the program. If one wants
|
|
|
|
|
@ -104,10 +104,10 @@ extern const char *gnc_default_strftime_date_format;
|
|
|
|
|
/** Constants *******************************************************/
|
|
|
|
|
/** \brief UTC date format string.
|
|
|
|
|
|
|
|
|
|
Timezone independent, date and time inclusive, as used in the QSF backend.
|
|
|
|
|
Time zone independent, date and time inclusive, as used in the QSF backend.
|
|
|
|
|
The T and Z characters are from xsd:dateTime format in coordinated universal time, UTC.
|
|
|
|
|
You can reproduce the string from the GNU/Linux command line using the date utility:
|
|
|
|
|
date -u +%Y-%m-%dT%H:M:SZ = 2004-12-12T23:39:11Z The datestring must be timezone independent
|
|
|
|
|
date -u +%Y-%m-%dT%H:M:SZ = 2004-12-12T23:39:11Z The datestring must be time zone independent
|
|
|
|
|
and include all specified fields. Remember to use gmtime() NOT localtime()!
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
@ -216,7 +216,7 @@ gchar* gnc_ctime (const time64 *secs);
|
|
|
|
|
*/
|
|
|
|
|
time64 gnc_time (time64 *tbuf);
|
|
|
|
|
|
|
|
|
|
/** \brief get the current utc time
|
|
|
|
|
/** \brief get the current UTC time
|
|
|
|
|
* \param A time64* which, if not NULL, will be filled in with the same
|
|
|
|
|
* value as is returned.
|
|
|
|
|
* \return Seconds since 00:00:01 UTC 01 January 1970 (negative values
|
|
|
|
|
@ -235,7 +235,7 @@ time64 gnc_time_utc (time64 *tbuf);
|
|
|
|
|
gdouble gnc_difftime (const time64 secs1, const time64 secs2);
|
|
|
|
|
|
|
|
|
|
/** Wrapper for g_date_time_new_from_unix_local() that takes special care on
|
|
|
|
|
* windows to take the local timezone into account. On unix, it just calles the
|
|
|
|
|
* windows to take the local time zone into account. On unix, it just calls the
|
|
|
|
|
* g_date function. */
|
|
|
|
|
GDateTime*
|
|
|
|
|
gnc_g_date_time_new_from_unix_local (time64 time);
|
|
|
|
|
@ -311,12 +311,12 @@ gboolean timespec_equal(const Timespec *ta, const Timespec *tb);
|
|
|
|
|
/** comparison: if (ta < tb) -1; else if (ta > tb) 1; else 0; */
|
|
|
|
|
gint timespec_cmp(const Timespec *ta, const Timespec *tb);
|
|
|
|
|
|
|
|
|
|
/** difference between ta and tb, results are normalised
|
|
|
|
|
/** difference between ta and tb, results are normalized
|
|
|
|
|
* ie tv_sec and tv_nsec of the result have the same size
|
|
|
|
|
* abs(result.tv_nsec) <= 1000000000 */
|
|
|
|
|
Timespec timespec_diff(const Timespec *ta, const Timespec *tb);
|
|
|
|
|
|
|
|
|
|
/** absolute value, also normalised */
|
|
|
|
|
/** absolute value, also normalized */
|
|
|
|
|
Timespec timespec_abs(const Timespec *t);
|
|
|
|
|
|
|
|
|
|
/** convert a timepair on a certain day (localtime) to
|
|
|
|
|
@ -354,15 +354,15 @@ Timespec gnc_dmy2timespec_end (gint day, gint month, gint year);
|
|
|
|
|
/** The gnc_iso8601_to_timespec_gmt() routine converts an ISO-8601 style
|
|
|
|
|
* date/time string to Timespec. Please note that ISO-8601 strings
|
|
|
|
|
* are a representation of Universal Time (UTC), and as such, they
|
|
|
|
|
* 'store' UTC. To make them human readable, they show timezone
|
|
|
|
|
* 'store' UTC. To make them human readable, they show time zone
|
|
|
|
|
* information along with a local-time string. But fundamentally,
|
|
|
|
|
* they *are* UTC. Thus, thir routine takes a UTC input, and
|
|
|
|
|
* they *are* UTC. Thus, this routine takes a UTC input, and
|
|
|
|
|
* returns a UTC output.
|
|
|
|
|
*
|
|
|
|
|
* For example: 1998-07-17 11:00:00.68-0500
|
|
|
|
|
* is 680 milliseconds after 11 o'clock, central daylight time
|
|
|
|
|
* It is also 680 millisecs after 16:00:00 hours UTC.
|
|
|
|
|
* \return The universl time.
|
|
|
|
|
* It is also 680 milliseconds after 16:00:00 hours UTC.
|
|
|
|
|
* \return The universal time.
|
|
|
|
|
*
|
|
|
|
|
* XXX Caution: this routine does not handle strings that specify
|
|
|
|
|
* times before January 1 1970.
|
|
|
|
|
@ -378,12 +378,12 @@ Timespec gnc_iso8601_to_timespec_gmt(const gchar *);
|
|
|
|
|
*
|
|
|
|
|
* Please note that ISO-8601 strings are a representation of
|
|
|
|
|
* Universal Time (UTC), and as such, they 'store' UTC. To make them
|
|
|
|
|
* human readable, they show timezone information along with a
|
|
|
|
|
* human readable, they show time zone information along with a
|
|
|
|
|
* local-time string. But fundamentally, they *are* UTC. Thus,
|
|
|
|
|
* this routine takes a UTC input, and returns a UTC output.
|
|
|
|
|
*
|
|
|
|
|
* The string generated by this routine uses the local timezone
|
|
|
|
|
* on the machine on which it is executing to create the timestring.
|
|
|
|
|
* The string generated by this routine uses the local time zone
|
|
|
|
|
* on the machine on which it is executing to create the time string.
|
|
|
|
|
*/
|
|
|
|
|
gchar * gnc_timespec_to_iso8601_buff (Timespec ts, gchar * buff);
|
|
|
|
|
|
|
|
|
|
@ -403,8 +403,8 @@ void gnc_timespec2dmy (Timespec ts, gint *day, gint *month, gint *year);
|
|
|
|
|
* by mktime. This is a strange function! It requires that localtime
|
|
|
|
|
* or mktime be called before use. Subsequent calls to localtime or
|
|
|
|
|
* mktime *may* invalidate the result! The actual contents of tm *may*
|
|
|
|
|
* be used for both timezone offset and daylight savings time, or only
|
|
|
|
|
* daylight savings time! Timezone stuff under unix is not
|
|
|
|
|
* be used for both time zone offset and daylight savings time, or only
|
|
|
|
|
* daylight savings time! time zone stuff under unix is not
|
|
|
|
|
* standardized and is a big mess.
|
|
|
|
|
*/
|
|
|
|
|
glong gnc_timezone (const struct tm *tm);
|
|
|
|
|
@ -414,7 +414,7 @@ glong gnc_timezone (const struct tm *tm);
|
|
|
|
|
/** \name QofDateFormat functions */
|
|
|
|
|
// @{
|
|
|
|
|
/** The qof_date_format_get routine returns the date format that
|
|
|
|
|
* the date printing will use when printing a date, and the scaning
|
|
|
|
|
* the date printing will use when printing a date, and the scanning
|
|
|
|
|
* routines will assume when parsing a date.
|
|
|
|
|
* @returns: the one of the enumerated date formats.
|
|
|
|
|
*/
|
|
|
|
|
|