system_date_time_format 0.1.1
system_date_time_format: ^0.1.1 copied to clipboard
A plugin for getting date and time format patterns from device system settings.
SystemDateTimeFormat #
A plugin for getting date & time format from device system settings.
Why system_date_time_format? #
Flutter does not support retrieving date and time format patterns based on the user's system
settings out of the box. However, you can use the system_date_time_format plugin to get
date and time format patterns for consistent formatting in your Flutter app.
Examples #
| iOS (Region: United States πΊπΈ) | Result |
|---|---|
![]() |
![]() |
| Android (Region: United Kingdom π¬π§) | Result |
|---|---|
![]() |
![]() |
Usage #
Import import 'package:system_date_time_format/system_date_time_format.dart';,
initialize SystemDateTimeFormat and use getters to get date & time formats from device system.
Example:
import 'package:system_date_time_format/system_date_time_format.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await SystemDateTimeFormat().initialize();
runApp(const App());
}
Note
Don't forget to call
initialize()before accessing any getters:
dateFormat,mediumDateFormat,longDateFormat,timeFormatotherwise it will throw
NotInitializedError.
class App extends StatelessWidget {
const App({super.key});
@override
Widget build(BuildContext context) {
// SystemDateTimeFormat() is a Singleton
final dateFormat = SystemDateTimeFormat().dateFormat;
final timeFormat = SystemDateTimeFormat().timeFormat;
print(dateFormat); // e.g. "M/d/yy"
print(timeFormat); // e.g. "HH:mm"
return const MaterialApp(
home: Scaffold(),
);
}
}
Fallbacks #
In case of some error, e.g. PlatformException plugin will return
fallback values
.
You can setup your own values by passing them in the initialize():
SystemDateTimeFormat().initialize(
dateFormatFallback: // default: 'M/d/yy'
mediumDateFormatFallback: // default: 'MMM d,y'
longDateFormatFallback: // default: 'MMMM d,y'
timeFormatFallback: // default: 'h:mm a'
);
Testing #
As the plugin class is not static, it is possible to mock and verify its behaviour when writing
tests as part of your application.
Check the source code
of example_with_tests
which is a modification of
basic example
with dependency injection using get_it and mocks thanks
to mocktail.



