pebble
  • Tutorials
  • Get the SDK
  • Guides
  • Documentation
  • Examples
  • Community
  • Blog
  • More
Privacy
Cookies
Publish

Pebble C API

  • Pebble C API
  • Pebble JavaScript API
  • PebbleKit JS
  • PebbleKit iOS
  • PebbleKit Android
  • Foundation
    • App
    • App Communication
    • App Glance
    • AppMessage
    • AppSync
    • AppWorker
    • DataLogging
    • DataStructures
      • UUID
    • Dictation
    • Dictionary
    • Event Service
      • AccelerometerService
      • AppFocusService
      • BatteryStateService
      • CompassService
      • ConnectionService
      • HealthService
      • TickTimerService
    • Exit Reason
    • Internationalization
    • Launch Reason
    • Logging
    • Math
    • Memory Management
    • Platform
    • Resources
      • File Formats
    • Storage
    • Timer
    • Wakeup
    • Wall Time
    • WatchInfo
    • Rocky
  • Graphics
    • Draw Commands
    • Drawing Paths
    • Drawing Primitives
    • Drawing Text
    • Fonts
    • Graphics Context
    • Graphics Types
      • Color Definitions
  • User Interface
    • Animation
      • PropertyAnimation
    • Clicks
    • Layers
      • ActionBarLayer
      • BitmapLayer
      • MenuLayer
      • RotBitmapLayer
      • ScrollLayer
      • SimpleMenuLayer
      • StatusBarLayer
      • TextLayer
    • Light
    • Preferences
    • UnobstructedArea
    • Vibes
    • Window
      • ActionMenu
      • NumberWindow
    • Window Stack
  • Standard C
    • Format
    • Locale
    • Math
    • Memory
    • String
    • Time

Wall Time

Functions, data structures and other things related to wall clock time.

This module contains utilities to get the current time and create strings with formatted dates and times.

Function Documentation

void clock_copy_time_string(char * buffer, uint8_t size)

Copies a time string into the buffer, formatted according to the user's time display preferences (such as 12h/24h time). Example results: "7:30" or "15:00".

Note

AM/PM are also outputted with the time if the user's preference is 12h time.

Parameters

buffer (out)

A pointer to the buffer to copy the time string into

size

The maximum size of buffer

bool clock_is_24h_style(void)

Gets the user's 12/24h clock style preference.

Returns

true if the user prefers 24h-style time display or false if the user prefers 12h-style time display.

time_t clock_to_timestamp(WeekDay day, int hour, int minute)

Converts a (day, hour, minute) specification to a UTC timestamp occurring in the future Always returns a timestamp for the next occurring instance, example: specifying TODAY@14:30 when it is 14:40 will return a timestamp for 7 days from now at 14:30.

Note

This function does not support Daylight Saving Time (DST) changes, events scheduled during a DST change will be off by an hour.

Parameters

day

WeekDay day of week including support for specifying TODAY

hour

hour specified in 24-hour format [0-23]

minute

minute [0-59]

bool clock_is_timezone_set(void)

Checks if timezone is currently set, otherwise gmtime == localtime.

Returns

true if timezone has been set, false otherwise

void clock_get_timezone(char * timezone, const size_t buffer_size)

If timezone is set, copies the current timezone long name (e.g. America/Chicago) to user-provided buffer.

Note

timezone buffer should be at least TIMEZONE_NAME_LENGTH bytes

Parameters

timezone

A pointer to the buffer to copy the timezone long name into

buffer_size

Size of the allocated buffer to copy the timezone long name into

Enum Documentation

enum WeekDay

Weekday values.

Enumerators

TODAY

Today.

SUNDAY

Sunday.

MONDAY

Monday.

TUESDAY

Tuesday.

WEDNESDAY

Wednesday.

THURSDAY

Thursday.

FRIDAY

Friday.

SATURDAY

Saturday.

Macro Definition Documentation

#define TIMEZONE_NAME_LENGTH 32

The maximum length for a timezone full name (e.g. America/Chicago)

Need some help?

Functions

  • clock_copy_time_string
  • clock_is_24h_style
  • clock_to_timestamp
  • clock_is_timezone_set
  • clock_get_timezone

Enums

  • WeekDay

Macro Defintions

  • TIMEZONE_NAME_LENGTH

Getting Help

Do you have questions about the Pebble SDK?

Do you need some help understanding something on this page?

You can either take advantage of our awesome developer community and check out the SDK Help forums, or you can send us a message through the website!