Home Reference Source Repository
import {Clock} from 'js-joda/src/Clock.js'
public class | source

Clock

Direct Subclass:

src/Clock.js~FixedClock, src/Clock.js~SystemClock

The javascript Clock implementation differs from the openjdk.

Javascript only provides the UTC millis of epoch and the ZoneOffset in minutes of the system default time. Javascript do not provide the system default ZoneId.

the system default ZoneId is only guessable by the ZoneOffset, like moment-timezone does by returning one ZoneId with the same ZoneOffset.

Therefore we are doing a shortcut here, by defining a SystemUTCClock and a SystemDefaultClock, the Clock itself is returning the ZoneOffset and not the ZoneRules as in the jdk. We should change it, when introducing the iana timezone database and implementing the timezone domains.

Static Method Summary

Static Public Methods
public static

fixed(fixedInstant: Instant, zoneOffset: ZoneOffset): Clock

Obtains a clock that always returns the same instant.

public static

system(zone: ZoneId): Clock

public static

Obtains a clock that returns the current instant using the best available system clock, converting to date and time using the default time-zone.

public static

Obtains a clock that returns the current instant using the system clock, converting to date and time using the Date.getTime() UTC millis.

Method Summary

Public Methods
public

Gets the current instant of the clock.

public

millis(): *

Gets the current millisecond instant of the clock.

public

zone()

Static Public Methods

public static fixed(fixedInstant: Instant, zoneOffset: ZoneOffset): Clock source

Obtains a clock that always returns the same instant.

This clock simply returns the specified instant. As such, it is not a clock in the conventional sense. The main use case for this is in testing, where the fixed clock ensures tests are not dependent on the current clock.

Params:

NameTypeAttributeDescription
fixedInstant Instant

the instant to use as the clock, not null

zoneOffset ZoneOffset

the zoneOffset to use as zone Offset, not null

Return:

Clock

a clock that always returns the same instant, not null

public static system(zone: ZoneId): Clock source

Params:

NameTypeAttributeDescription
zone ZoneId

Return:

Clock

a clock that uses the specified time zone

public static systemDefaultZone(): Clock source

Obtains a clock that returns the current instant using the best available system clock, converting to date and time using the default time-zone.

This clock is based on the available system clock using the Date.getTime() UTC millis

Using this method hard codes a dependency to the default time-zone into your application.

The {@link #systemUTC() UTC clock} should be used when you need the current instant without the date or time.

Return:

Clock

a clock that uses the system clock in the default zone, not null

See:

public static systemUTC(): Clock source

Obtains a clock that returns the current instant using the system clock, converting to date and time using the Date.getTime() UTC millis.

This clock, rather than {@link #systemDefaultZone()}, should be used when you need the current instant without the date or time.

Return:

Clock

a clock that uses the system clock in the UTC zone, not null

Public Methods

public instant(): Instant source

Gets the current instant of the clock.

This returns an instant representing the current instant as defined by the clock.

Return:

Instant

the current instant from this clock, not null

public millis(): * source

Gets the current millisecond instant of the clock.

This returns the millisecond-based instant, measured from 1970-01-01T00:00Z (UTC). This is equivalent to the definition of {@link Date#getTime()}.

Most applications should avoid this method and use Instant to represent an instant on the time-line rather than a raw millisecond value. This method is provided to allow the use of the clock in high performance use cases where the creation of an object would be unacceptable.

The default implementation currently calls #instant.

Return:

*

the current millisecond instant from this clock, measured from the Java epoch of 1970-01-01T00:00Z (UTC), not null

public zone() source