A MIRIAM-compliant date representation.
This class of objects is defined by libSBML only and has no direct
equivalent in terms of SBML components. This class is not prescribed by
the SBML specifications, although it is used to implement features
defined in SBML.
A Date object stores a reasonably complete representation of date and time. Its purpose is to serve as a way to store dates to be read and written in the W3C date format used in RDF Dublin Core annotations within SBML. The W3C date format is a restricted form of ISO 8601, the international standard for the representation of dates and times. A time and date value in this W3C format takes the form YYYY-MM-DDThh:mm:ssXHH:ZZ (e.g., 1997-07-16T19:20:30+01:00
) where XHH:ZZ is the time zone offset. The libSBML Date object contains the following fields to represent these values:
- year: an unsigned int representing the year. This should be a four-digit number such as
2011
.
- month: an unsigned int representing the month, with a range of values of 1–12. The value
1
represents January, and so on.
- day: an unsigned int representing the day of the month, with a range of values of 1–31.
- hour: an unsigned int representing the hour on a 24-hour clock, with a range of values of 0–23.
- minute: an unsigned int representing the minute, with a range of 0–59.
- second: an unsigned int representing the second, with a range of 0–59.
- sign: an unsigned int representing the sign of the offset (
0
signifying +
and 1
signifying -
). See the paragraph below for further explanations.
- hours offset: an unsigned int representing the time zone's hour offset from GMT, with a range of 0–12.
- minute offset: an unsigned int representing the time zone's minute offset from GMT, with a range of 0–59.
To illustrate the time zone offset, a value of -05:00
would correspond to USA Eastern Standard Time. In the Date object, this would require a value of 1
for the sign field, 5
for the hour offset and 0
for the minutes offset.
In the restricted RDF annotations used in SBML, described in Section 6 of the SBML Level 2 and Level 3 specification documents, date/time stamps can be used to indicate the time of creation and modification of a model. The following SBML model fragment illustrates this:
<model metaid="_180340" id="GMO" name="Goldbeter1991_MinMitOscil">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" >
<rdf:Description rdf:about="#_180340">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
<vCard:N rdf:parseType="Resource">
<vCard:Family>Shapiro</vCard:Family>
<vCard:Given>Bruce</vCard:Given>
</vCard:N>
<vCard:EMAIL>bshapiro@jpl.nasa.gov</vCard:EMAIL>
<vCard:ORG rdf:parseType="Resource">
<vCard:Orgname>NASA Jet Propulsion Laboratory</vCard:Orgname>
</vCard:ORG>
</rdf:li>
</rdf:Bag>
</dc:creator>
<dcterms:created rdf:parseType="Resource">
<dcterms:W3CDTF>2005-02-06T23:39:40+00:00</dcterms:W3CDTF>
</dcterms:created>
<dcterms:modified rdf:parseType="Resource">
<dcterms:W3CDTF>2005-09-13T13:24:56+00:00</dcterms:W3CDTF>
</dcterms:modified>
</rdf:Description>
</rdf:RDF>
</annotation>
</model>
- Examples
- addModelHistory.cpp.
Date::Date |
( |
const std::string & |
date | ) |
|
Creates a Date object from a string expressing a date and time value.
This constructor expects its argument to be in the W3C date format with time zone offset, used in RDF Dublin Core annotations within SBML.
- The date format expresses a date and time value as a string of the form YYYY-MM-DDThh:mm:ssXHH:ZZ, where
- YYYY is a four-digit integer representing the year. This should be a four-digit number such as
2011
.
- MM is a two-digit integer representing the month, with a range of values of 01–12. The value
1
represents January, and so on.
- DD is a two-digit integer representing the day of the month, with a range of values of 01–31.
- T is the literal character
T
.
- hh is a two-digit integer representing the hour on a 24-hour clock, with a range of values of 00–23.
- mm is a two-digit integer representing the minute, with a range of 00–59.
- ss is a two-digit integer representing the second, with a range of 0–59.
- X is the the sign of the time zone offset, either
+
or -
.
- HH is a two-digit integer representing the hour of the time zone offset, with a range of 00–23.
- ZZ is a two-digit integer representing the minutes of the time zone offset, with a range of 00–59.
In the string format above, it is important not to forget the literal character T
in the string. Here is an example date/time string: 1997-07-16T19:20:30+01:00
, which would represent July 16, 1997, at 19:20:30 in Central European Time (which is UTC +1:00).
If this constructor is given a NULL
argument or a string of length zero, it constructs a Date object with the value of January 1, 2000, at time 00:00 UTC. Otherwise, the argument must be in the complete format described above, or unpredictable results will happen.
- Parameters
-
date | a string representing the date. |
int Date::setDateAsString |
( |
const std::string & |
date | ) |
|
Sets the value of this Date object using a date and time value expressed as a text string.
This method expects its argument to be in the W3C date format with time zone offset, used in RDF Dublin Core annotations within SBML.
- The date format expresses a date and time value as a string of the form YYYY-MM-DDThh:mm:ssXHH:ZZ, where
- YYYY is a four-digit integer representing the year. This should be a four-digit number such as
2011
.
- MM is a two-digit integer representing the month, with a range of values of 01–12. The value
1
represents January, and so on.
- DD is a two-digit integer representing the day of the month, with a range of values of 01–31.
- T is the literal character
T
.
- hh is a two-digit integer representing the hour on a 24-hour clock, with a range of values of 00–23.
- mm is a two-digit integer representing the minute, with a range of 00–59.
- ss is a two-digit integer representing the second, with a range of 0–59.
- X is the the sign of the time zone offset, either
+
or -
.
- HH is a two-digit integer representing the hour of the time zone offset, with a range of 00–23.
- ZZ is a two-digit integer representing the minutes of the time zone offset, with a range of 00–59.
In the string format above, it is important not to forget the literal character T
in the string. Here is an example date/time string: 1997-07-16T19:20:30+01:00
, which would represent July 16, 1997, at 19:20:30 in Central European Time (which is UTC +1:00).
If this method is given a NULL
argument or a string of length zero, it constructs a Date object with the value of January 1, 2000, at time 00:00 UTC. Otherwise, the argument must be in the complete format described above, or unpredictable results will happen.
- Parameters
-
date | a string representing the date. |
- Returns
- integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are: