---
name: "SbTime"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SbTime/3iv"
---

# SbTime(3iv)

class for representation of a time

## NAME

SbTime — class for representation of a time

## INHERITS FROM

SbTime

## SYNOPSIS

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

Methods from class SbTime:

	**SbTime()**\
 	**SbTime(double sec)**\
 	**SbTime(int32\_t sec, long usec)**\
 	**SbTime(const struct timeval \*tv)**\
 **static SbTime**	**getTimeOfDay()**\
 **void**	**setToTimeOfDay()**\
 **static SbTime**	**zero()**\
 **static SbTime**	**max()**\
 **void**	**setValue(double sec)**\
 **void**	**setValue(int32\_t sec, long usec)**\
 **void**	**setValue(const struct timeval \*tv)**\
 **void**	**setMsecValue(unsigned long msec)**\
 **double**	**getValue() const**\
 **void**	**getValue(int32\_t &sec, long &usec) const**\
 **void**	**getValue(struct timeval \*tv) const**\
 **unsigned long**	**getMsecValue() const**\
 **SbString**	**format(const char \*fmt = "%S.%i") const**\
 **SbString**	**formatDate(const char \*fmt = "%A, %D %r") const**\
 **SbTime**	**operator +(const SbTime &t0, const SbTime &t1)**\
 **SbTime**	**operator -(const SbTime &t0, const SbTime &t1)**\
 **SbTime &**	**operator +=(const SbTime &tm)**\
 **SbTime &**	**operator -=(const SbTime &tm)**\
 **SbTime**	**operator -() const**\
 **SbTime**	**operator \*(double s, const SbTime &tm)**\
 **SbTime**	**operator \*(const SbTime &tm, double s)**\
 **SbTime**	**operator /(const SbTime &tm, double s)**\
 **SbTime &**	**operator \*=(double s)**\
 **SbTime &**	**operator /=(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**

## DESCRIPTION

**This class represents and performs operations on time. Operations may be done in seconds, seconds and microseconds, or using a struct timeval** (defined in */usr/include/sys/time.h*).

## METHODS

	**SbTime()**\
 	**SbTime(double sec)**\
 	**SbTime(int32\_t sec, long usec)**\
 	**SbTime(const struct timeval \*tv)**\
 Constructors taking seconds, seconds and microseconds, or a **struct timeval**.  NOTE that an integer parameter will not automatically cast to a double to invoke the constructor taking seconds; that is, **SbTime(1)** will result in a compilation error. **SbTime(1.0)** must be used instead. This is to avoid errors in upgrading from an earlier release, in which **SbTime(1)** had different semantics. In future releases, this distinction will be eliminated, and the effect of **SbTime(1.0)** and that of **SbTime(1)** will be identical.

**static SbTime**	**getTimeOfDay()**\
 Get the current time (seconds since Jan 1, 1970).

**void**	**setToTimeOfDay()**\
 Set to the current time (seconds since Jan 1, 1970).

**static SbTime**	**zero()**\
 Get a zero time.

**static SbTime**	**max()**\
 Get a time far, far into the future.

**void**	**setValue(double sec)**\
 Set time from a double (in seconds).

**void**	**setValue(int32\_t sec, long usec)**\
 Set time from seconds + microseconds.

**void**	**setValue(const struct timeval \*tv)**\
 Set time from a **struct timeval**.

**void**	**setMsecValue(unsigned long msec)**\
 Set time from milliseconds.

**double**	**getValue() const**\
 Get time in seconds as a double.

**void**	**getValue(int32\_t &sec, long &usec) const**\
 Get time in seconds and microseconds.

**void**	**getValue(struct timeval \*tv) const**\
 Get time in a **struct timeval**.

**unsigned long**	**getMsecValue() const**\
 Get time in milliseconds (for Xt).

**SbString**	**format(const char \*fmt = "%S.%i") const**\
 Convert to a string. The default format is seconds with 3 digits of fraction precision. **fmt** is a character string that consists of field descriptors and text characters, in a manner analogous to **cftime (3C)** and **printf (3S)**. Each field descriptor consists of a % character followed by another character which specifies the replacement for the field descriptor. All other characters are copied from **fmt** into the result. The following field descriptors are supported:

```
%   the `%' character
D   total number of days
H   total number of hours
M   total number of minutes
S   total number of seconds
I   total number of milliseconds
U   total number of microseconds
h   hours remaining after the days (00-23)
m   minutes remaining after the hours (00-59)
s   seconds remaining after the minutes (00-59)
i   milliseconds remaining after the seconds (000-999)
u   microseconds remaining after the seconds (000000-999999)
```

The uppercase descriptors are formatted with a leading \`—' for negative times; the lowercase descriptors are formatted fixed width, with leading zeros. For example, a reasonable format string might be "elapsed time: %M minutes, %s seconds". The default value of **fmt**, "%S.%i", formats the time as seconds with 3 digits of fractional precision.

**SbString**	**formatDate(const char \*fmt = "%A, %D %r") const**\
 Convert to a date string, interpreting the time as seconds since Jan 1, 1970. The default format gives "Tuesday, 01/26/93 11:23:41 AM". See the **cftime()** reference page for explanation of the format string.

**SbTime**	**operator +(const SbTime &t0, const SbTime &t1)**\
 **SbTime**	**operator -(const SbTime &t0, const SbTime &t1)**\
 Addition and subtraction of two times.

**SbTime &**	**operator +=(const SbTime &tm)**\
 **SbTime &**	**operator -=(const SbTime &tm)**\
 Addition and subtraction of two times which modifies the time structure.

**SbTime**	**operator -() const**\
 Unary negation.

**SbTime**	**operator \*(double s, const SbTime &tm)**\
 **SbTime**	**operator \*(const SbTime &tm, double s)**\
 **SbTime**	**operator /(const SbTime &tm, double s)**\
 Multiplication and division by scalar.

**SbTime &**	**operator \*=(double s)**\
 **SbTime &**	**operator /=(double s)**\
 Destructive multiplication and division by scalar.

**double**	**operator /(const SbTime &tm) const**\
 Division by another time.

**SbTime**	**operator %(const SbTime &tm) const**\
 Modulus for two times (remainder when time1 is divided by time2).

**int**	**operator ==(const SbTime &tm) const**\
 **int**	**operator !=(const SbTime &tm) const**\
 Equality operators.

**SbBool**	**operator \<(const SbTime &tm) const**\
 **SbBool**	**operator \>(const SbTime &tm) const**\
 **SbBool**	**operator \<=(const SbTime &tm) const**\
 **SbBool**	**operator \>=(const SbTime &tm) const**\
 Relational operators.

## SEE ALSO

**cftime**
