mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-04-20 15:07:17 -04:00
Status bar SIM widget refactor Status bar time widget recfactor Status bar lock widget refactor Separation of status bar time widget and desktop main window time widget Fixed issue with wrong calculation of timezone based time
Time conversion utility
Why?
- There is no locale except C-Locale available in stdlib nano and we need time conversions.
- stdlibnano doesn't provide a way to sustitute C-Locale (it's static)
How?
There is C-Locale builtin, therefore it's used to convert time whenever possible.
When it's not -> specifiers are substituted with our locale (i18 map)
+------------+ +--------+
| Timestamp | <=> | Locale |
+------------+ +--------+
*
|
+------------+
| DateTime |
+------------+
* *
/ \
/ \
+------+ +------+
| Time | | Date |
+------+ +------+
Locale - (utils::time::Locale) class for i18n Timestamp internationalization management
Timestamp - general class to store time data. Init with a EPOCH timestamp. Has input and output formatters.
DateTime - class for most of possible usecases, initialized with system clock, can return time/date string in reference to past
Date - just a subclass with a default formatter returning the date in particular
Time - just a subclass with a default formatter returning the time, regardless of the date (today/yesterday/5 days ago)
For more see headers