---
name: "SbTime"
section: "3"
platform: "linux"
package: "coin"
version: "1:4.0.10-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/SbTime"
---

# SbTime(3)

The SbTime class instances represents time values.

## NAME

SbTime - The **SbTime** class instances represents time values.

## SYNOPSIS

\#include \<Inventor/SbTime.h\>

### Public Member Functions

**SbTime** (void)\
 **SbTime** (const double sec)\
 **SbTime** (const int32\_t sec, const long usec)\
 **SbTime** (const struct timeval \*const tv)\
 void **setToTimeOfDay** (void)\
 void **setValue** (const double sec)\
 void **setValue** (const int32\_t sec, const long usec)\
 void **setValue** (const struct timeval \*const tv)\
 void **setMsecValue** (const unsigned long msec)\
 double **getValue** (void) const\
 void **getValue** (time\_t &sec, long &usec) const\
 void **getValue** (struct timeval \*tv) const\
 unsigned long **getMsecValue** (void) const\
 **SbString** **format** (const char \*const fmt='%S.%i') const\
 **SbString** **formatDate** (const char \*const fmt=NULL) const\
 SbBool **parsedate** (const char \*const date)\
 **SbTime** & **operator+=** (const **SbTime** &tm)\
 **SbTime** & **operator-=** (const **SbTime** &tm)\
 **SbTime** **operator-** (void) const\
 **SbTime** & **operator\*=** (const double s)\
 **SbTime** & **operator/=** (const double s)\
 double **operator/** (const **SbTime** &tm) const\
 **SbTime** **operator%** (const **SbTime** &tm) const\
 int **operator==** (const **SbTime** &tm) const\
 int **operator!=** (const **SbTime** &tm) const\
 SbBool **operator\<** (const **SbTime** &tm) const\
 SbBool **operator\>** (const **SbTime** &tm) const\
 SbBool **operator\<=** (const **SbTime** &tm) const\
 SbBool **operator\>=** (const **SbTime** &tm) const\
 void **print** (FILE \*fp) const\

### Static Public Member Functions

static **SbTime** **getTimeOfDay** (void)\
 static **SbTime** **zero** (void)\
 static **SbTime** **max** (void)\
 static **SbTime** **maxTime** (void)\
 static void **sleep** (int msec)\

## Detailed Description

The **SbTime** class instances represents time values.

**SbTime** is a convenient way of doing system independent representation and calculations on time values of high resolution.

## Constructor & Destructor Documentation

### SbTime::SbTime (void )

The default constructor sets up a time instance of 0 seconds.

### SbTime::SbTime (const double sec)

Construct and initialize an **SbTime** instance to a time specified as *sec* seconds.

### SbTime::SbTime (const int32\_t sec, const long usec)

Construct and initialize an **SbTime** instance to a date and time *sec* number of seconds and *usec* number of microseconds.

### SbTime::SbTime (const struct timeval \*const tv)

Construct and initialize an **SbTime** instance to the date and time given by the *struct* *timeval*. For information on the *timeval* structure, please consult your system developer documentation.

## Member Function Documentation

### SbTime SbTime::getTimeOfDay (void ) \[static\]

Returns an **SbTime** instance with the current clock time. The current time will be given as a particular number of seconds and microseconds since 00:00:00 January 1, 1970, in Coordinated Universal Time (UTC).

**See also**

**setToTimeOfDay()**.

### void SbTime::setToTimeOfDay (void )

Set this **SbTime** to be the current clock time. The current time will be given as a particular number of seconds and microseconds since 00:00:00.00 1st January 1970.

**See also**

**getTimeOfDay()**.

### SbTime SbTime::zero (void ) \[static\]

Returns an **SbTime** instance representing zero time.

**See also**

**zero()**.

### SbTime SbTime::max (void ) \[static\]

Returns an **SbTime** instance representing the maximum representable time/date.

This method is not available under Microsoft Windows, as **max()** crashes with a define macro Microsoft has polluted the global namespace with.

**See also**

**zero()**.

### SbTime SbTime::maxTime (void ) \[static\]

Returns an **SbTime** instance representing the maximum representable time/date.

**See also**

**zero()**.

### void SbTime::sleep (int msec) \[static\]

Suspends the current thread for *msec* milliseconds.

**See also**

cc\_sleep().

**Since**

Coin 3.0

### void SbTime::setValue (const double sec)

Reset an **SbTime** instance to *sec* number of seconds.

**See also**

**getValue()**.

### void SbTime::setValue (const int32\_t sec, const long usec)

Reset an **SbTime** instance to *sec* number of seconds and *usec* number of microseconds.

**See also**

**getValue()**.

### void SbTime::setValue (const struct timeval \*const tv)

Reset an **SbTime** instance to the date and time given by the *timeval* struct. For information on the *timeval* struct, please consult your developer system documentation.

**See also**

**getValue()**.

### void SbTime::setMsecValue (const unsigned long msec)

Set the time by *msec* number of milliseconds.

**See also**

**getMsecValue()**.

### double SbTime::getValue (void ) const

Return time as number of seconds.

**See also**

**setValue()**.

### void SbTime::getValue (time\_t & sec, long & usec) const

Return number of seconds and microseconds which the **SbTime** instance represents.

**See also**

**setValue()**.

### void SbTime::getValue (struct timeval \* tv) const

Returns the time as a *timeval* structure. For information on the *timeval* structure, please consult your system developer documentation.

**See also**

**setValue()**.

### unsigned long SbTime::getMsecValue (void ) const

Return number of milliseconds which the **SbTime** instance represents.

Important note: you should in general avoid using this function, as it has an inherent API design flaw (from the original SGI Open Inventor design). The problem is that an unsigned long wraps around in a fairly short time when used for counting milliseconds: in less than 50 days. (And since **SbTime** instances are often initialized to be the time since the start of the epoch (i.e. 1970-01-01 00:00), the value will have wrapped around many, many times.)

You are probably better off using the **getValue()** method which returns a double for the number of seconds, then multiply by 1000.0 if you need to know the current number of milliseconds of the **SbTime** instance.

**See also**

**setMsecValue()**

### SbString SbTime::format (const char \*const fmt = '%S.%i') const

Uses the formatting specified below to return a string representation of the stored date/time. Any format specifiers must be prefixed with a '' symbol, any other text in the format string *fmt* will be copied directly to the resultant **SbString**.

%% - insert a single ''.\
\
  D - number of days.\
\
  H - number of hours.\
\
  h - remaining hours after subtracting number of days.\
\
  M - number of minutes.\
\
  m - remaining minutes after subtracting the total number of hours.\
\
  S - number of seconds.\
\
  s - remaining seconds after subtracting the total number of minutes.\
\
  I - number of milliseconds.\
\
  i - remaining milliseconds after subtracting the total number of seconds.\
\
  U - number of microseconds.\
\
  u - remaining microseconds after subtracting the total number of mseconds.\

The result shows UTC time, not corrected for local time zone nor daylight savings time.

**See also**

**formatDate()**.

### SbString SbTime::formatDate (const char \*const fmt = NULL) const

Accepts the formatting identifiers specified by the POSIX strftime() function to return a string representation of the stored date. Check your reference documentation for strftime() for information on the format modifiers available.

Default formatting is used if *fmt* is NULL. Note that the default formatting is different on Microsoft Windows systems versus all other systems. For Windows, it is "%#c", for other systems it is "%A, %D %r" (again, see system documentation on strftime() for more information).

The value of **SbTime** will be interpreted as seconds since 00:00:00 1970-01-01.

The result shows local time, according to local time zone and daylight savings time (if and when applicable).

**See also**

**format()**.

### SbBool SbTime::parsedate (const char \*const date)

This method takes a date string and converts it to the internal **SbTime** format. The date string must conform to one of three formats, namely the RFC 822 / RFC 1123 format (Wkd, DD Mnth YYYY HH:MM:SS GMT), the RFC 850 / RFC 1036 format (Weekday, DD-Mnth-YY HH:MM:SS GMT), or the asctime() format (Wkdy Mnth D HH:MM:SS YYYY).

Feeding an invalid date string to this method will make it return *FALSE*.

### SbTime & SbTime::operator+= (const SbTime & tm)

Add *tm* to time value and return reference to self.

### SbTime & SbTime::operator-= (const SbTime & tm)

Subtract *tm* from time value and return reference to self.

### SbTime SbTime::operator- (void ) const

Return the negated time.

### SbTime & operator\*= (const double s)

Multiply time value with *s* and return reference to self.

### SbTime & operator/= (const double s)

Divide time value with *s* and return reference to self.

### double operator/ (const SbTime & tm) const

Find the factor between this **SbTime** and the one given in *tm*, and return the result.

### SbTime SbTime::operator% (const SbTime & tm) const

Returns the remainder time when dividing on *tm*.

### int SbTime::operator== (const SbTime & tm) const

Check if the time value is equal to that of *tm*.

### int SbTime::operator!= (const SbTime & tm) const

Check if the time value is not equal to that of *tm*.

### SbBool SbTime::operator\< (const SbTime & tm) const

Compares with *tm* and return TRUE if less.

### SbBool SbTime::operator\> (const SbTime & tm) const

Compares with *tm* and return TRUE if larger than.

### SbBool SbTime::operator\<= (const SbTime & tm) const

Compares with *tm* and return TRUE if less or equal.

### SbBool SbTime::operator\>= (const SbTime & tm) const

Compares with *tm* and return TRUE if larger or equal.

### void SbTime::print (FILE \* fp) const

Dump the state of this object to the *fp* file stream. Only works in debug version of library, method does nothing in an optimized build.

## Author

Generated automatically by Doxygen for Coin from the source code.
