31 lines
726 B
Dart
31 lines
726 B
Dart
import 'package:timezone/data/latest.dart' as tz;
|
|
import 'package:timezone/timezone.dart' as tz;
|
|
|
|
class AppTime {
|
|
static bool _initialized = false;
|
|
|
|
static void initialize({String location = 'Asia/Manila'}) {
|
|
if (_initialized) return;
|
|
tz.initializeTimeZones();
|
|
tz.setLocalLocation(tz.getLocation(location));
|
|
_initialized = true;
|
|
}
|
|
|
|
static DateTime now() {
|
|
return tz.TZDateTime.now(tz.local);
|
|
}
|
|
|
|
static DateTime nowUtc() {
|
|
return now().toUtc();
|
|
}
|
|
|
|
static DateTime toAppTime(DateTime value) {
|
|
final utc = value.isUtc ? value : value.toUtc();
|
|
return tz.TZDateTime.from(utc, tz.local);
|
|
}
|
|
|
|
static DateTime parse(String value) {
|
|
return toAppTime(DateTime.parse(value));
|
|
}
|
|
}
|