time
The sos.management.time
API groups together methods for working with the system time.
Time Management Capabilities
Capability | Description |
---|---|
SET_TIME | If the device can set the system time. |
SET_TIMEZONE | If the device can set the system timezone. |
GET_TIMEZONE | If the device can get the system timezone. |
NTP_TIME | If the device can set the NTP server and system timezone. |
If you want to check if the device supports those capabilities, use sos.management.supports()
.
Methods
get()
The get()
method returns the currently set time from the device.
get(): Promise<IGetTime>;
Return value
A promise that resolves to the current time with timezone.
Possible errors
If the time cannot be retrieved.
Example
const currentTime = await sos.management.time.get();
console.log(`Current time is: ${currentTime.currentDate} in timezone ${currentTime.timezone}`);
setManual(dateTime, timezone)
The setManual()
method sets the system time and the system timezone and disables NTP server settings.
- Tizen: After calling this API, display Reboots! Tizen has a limited set of available timezones. Read more here.
- RaspberryPi: After calling this API, RPi Reboots the backend server, which can take up to 60 seconds! During the reboot, no JS API is available. Always wait for Promise resolution.
setManual(dateTime: DateTime, timezone: string): Promise<void>;
Params
Name | Type | Required | Description |
---|---|---|---|
dateTime | DateTime | Yes | The date and time to set. |
timezone | string | Yes | The timezone to set. |
Return value
A promise that resolves when the time is successfully set.
Possible errors
- If
dateTime
is not a valid Date or DateTime object. - If
timezone
is not a valid string. - If the time cannot be set.
Example
// Set the system time to 2023-10-01T12:00:00 in Europe/Prague timezone
const dateTime = {
year: 2023,
month: 10,
day: 1,
hour: 12,
minute: 0,
second: 0,
}
await sos.management.time.setManual(dateTime, 'Europe/Prague');
setNTP()
The setNTP()
method sets the NTP server and the system timezone.
- Tizen / WebOS: After calling this API, display Reboots! Tizen has a limited set of available timezones. Read more here.
- RaspberryPi: After calling this API, RPi Reboots the backend server, which can take up to 60 seconds! During the reboot, no JS API is available. Always wait for Promise resolution.
setNTP(ntpServer: string, timezone: string): Promise<void>;
Params
Name | Type | Required | Description |
---|---|---|---|
ntpServer | string | Yes | The NTP server to set. |
timezone | string | Yes | The timezone to set. |
Return value
A promise that resolves when the NTP server and timezone are successfully set.
Possible errors
- If
ntpServer
is not a valid string. - If
timezone
is not a valid string. - If the NTP server and timezone cannot be set.
Example
// Set the NTP server to `pool.ntp.org` and timezone to `Europe/Prague`
await sos.management.time.setNTP('pool.ntp.org', 'Europe/Prague');
set()
This method was deprecated. Use setManual(dateTime, timezone)
instead.
set(currentDate: Date, timezone: string): Promise<void>;
setManual(currentDate, timezone)
This method was deprecated. Use setManual(dateTime, timezone)
instead.
setManual(currentDate: Date, timezone: string): Promise<void>;
API Example
import { sos } from '@signageos/front-applet';
void sos.onReady(async () => {
const { currentDate, timezone, ntpServer } = await sos.management.time.get();
console.log({ currentDate, timezone, ntpServer });
// Set the time without a ntp server
await sos.management.time.setManual(
{
year: 2025,
month: 5,
day: 23,
hour: 13,
minute: 0,
second: 0,
},
'Europe/Amsterdam',
);
// Set the time with a ntp server
await sos.management.time.setNTP('pool.ntp.org', 'Europe/Amsterdam');
});