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>
|
Date * | clone () const |
| Creates and returns a deep copy of this Date object.
|
|
| Date (const Date &orig) |
| Copy constructor; creates a copy of this Date.
|
|
| Date (const std::string &date) |
| Creates a Date object from a string expressing a date and time value.
|
|
| Date (unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, unsigned int minute=0, unsigned int second=0, unsigned int sign=0, unsigned int hoursOffset=0, unsigned int minutesOffset=0) |
| Creates a time and date representation for use in model annotations and elsewhere.
|
|
const std::string & | getDateAsString () const |
| Returns the current Date value in text-string form.
|
|
unsigned int | getDay () const |
| Returns the day from this Date.
|
|
unsigned int | getHour () const |
| Returns the hour from this Date.
|
|
unsigned int | getHoursOffset () const |
| Returns the hours of the time zone offset from this Date.
|
|
unsigned int | getMinute () const |
| Returns the minute from this Date.
|
|
unsigned int | getMinutesOffset () const |
| Returns the minutes of the time zone offset from this Date.
|
|
unsigned int | getMonth () const |
| Returns the month from this Date.
|
|
unsigned int | getSecond () const |
| Returns the seconds from this Date.
|
|
unsigned int | getSignOffset () const |
| Returns the sign of the time zone offset from this Date.
|
|
unsigned int | getYear () const |
| Returns the year from this Date.
|
|
Date & | operator= (const Date &rhs) |
| Assignment operator.
|
|
bool | representsValidDate () |
| Returns true or false depending on whether this date object represents a valid date and time value.
|
|
int | setDateAsString (const std::string &date) |
| Sets the value of this Date object using a date and time value expressed as a text string.
|
|
int | setDay (unsigned int day) |
| Sets the value of the day of this Date object.
|
|
int | setHour (unsigned int hour) |
| Sets the value of the hour of this Date object.
|
|
int | setHoursOffset (unsigned int hoursOffset) |
| Sets the value of this Date object's time zone hour offset.
|
|
int | setMinute (unsigned int minute) |
| Sets the value of the minute of this Date object.
|
|
int | setMinutesOffset (unsigned int minutesOffset) |
| Sets the value of this Date object's time zone minutes offset.
|
|
int | setMonth (unsigned int month) |
| Sets the value of the month of this Date object.
|
|
int | setSecond (unsigned int second) |
| Sets the value of the second of the Date object.
|
|
int | setSignOffset (unsigned int sign) |
| Sets the value of the sign of the time zone offset of this Date object.
|
|
int | setYear (unsigned int year) |
| Sets the value of the year of this Date object.
|
|
| ~Date () |
| Destroys this Date.
|
|
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 possible values returned by this function are: