system_date_time_format
A plugin for getting date and time format patterns from device system settings.
1.5.1
18K downloads/mo
#2281 most downloaded on pub.dev
Nikoro/system_date_time_format
What this package is like to depend on
Last release 18 days ago
05 Aug 2026
Release timing varies
gaps range from 8 days to 11 months
Nearly every release is documented
notes for 24 of 24 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
24 releases · first in 2023
5 releases in the last 12 months
see the full history below
Release timeline
24 releases · Feb 2023 to Aug 2026Releases
latest 24-
1.5.105 Aug 2026Release notes
Open source →Fixed
- Fixed
SDTFScopethrowing an unhandled exception when it was disposed while a pending date/time format request was still in flight.
- Fixed
-
1.5.027 May 2026Release notes
Open source →Added
- Migrated platform build configurations to current Flutter tooling.
-
1.4.005 Jan 2026 -
1.3.105 Jan 2026Release notes
Open source →Changed
- Updated documentation to recommend using local web asset instead of CDN from v1.3.1+
- Added web asset to pubspec.yaml for better offline support
- Updated example projects to use local web asset
- Excluded example directories from analyzer
Release notes
Open source →- Updated documentation to recommend using local web asset instead of CDN from v1.3.1+
- Added web asset to pubspec.yaml for better offline support
- Updated example projects to use local web asset
- Excluded example directories from analyzer
-
1.3.024 Nov 2025Release notes
Open source →🚀 Release 1.3.0
⚠️ Breaking Changes
- Updated minimum Dart SDK to 3.2.0 (from 2.18.6)
- Updated minimum Flutter SDK to 3.16.0 (from 2.5.0)
✨ What's New
Dependency Updates
- Removed
js_interoppackage dependency - now using built-indart:js_interopfrom Dart SDK - Updated
flutter_lintsto 6.0.0
Bug Fixes
- Web: Fixed hour pattern formatting to properly handle both single (h/H) and double-digit (hh/HH) formats
- Windows & Linux: Fixed AM/PM pattern conversion from 'tt' to 'a' for proper time formatting
- Improved type checking with strict equality operators
Example Apps
- Regenerated all platform folders (Android, iOS, macOS, Linux, Windows, Web) with latest Flutter templates
- Updated Android to use Kotlin DSL build files (.gradle.kts)
- Updated iOS/macOS Podfiles to latest syntax
- Modernized Linux CMake structure with runner subfolder
- Updated Windows CMake and runner configuration
📝 Full Changelog
All commits since v1.2.2:
- fix(web): correct hour pattern formatting in date time format
- fix(windows,linux): convert AM/PM pattern from 'tt' to 'a'
- chore: remove js_interop dependency and update SDK constraints
- chore: bump version to 1.3.0
- build(example): regenerate platform folders with latest Flutter templates
👥 Contributors
Thanks to @jacksoncurrie for #26
Note: If you're upgrading from 1.2.2, ensure your project meets the new minimum SDK requirements (Dart ≥3.2.0, Flutter ≥3.16.0).
Release notes
Open source →- BREAKING: Updated minimum Dart SDK to 3.2.0 (from 2.18.6) and Flutter SDK to 3.16.0 (from 2.5.0)
- Removed js_interop package dependency (now using built-in dart:js_interop)
- Fixed AM/PM pattern conversion from 'tt' to 'a' on Windows and Linux platforms
- Fixed hour pattern formatting on web platform
-
1.2.222 Dec 2024 -
1.2.127 Mar 2024Release notes
Open source →- Fix bug on android:
A problem occurred configuring project ':system_date_time_format'. Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl. Namespace not specified. Specify a namespace in the module's build file. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about setting the namespace.
- Update dependencies
-
1.2.014 Feb 2024 -
1.1.214 Feb 2024Release notes
Open source →- Updated README info about ->
system_date_time_format_hookpackage - Improved tests
- Updated README info about ->
-
1.1.113 Feb 2024 -
1.1.013 Feb 2024Release notes
Open source →- Added
full date pattern(only available for iOS, macOS and web) - Fix returning empty string
""instead ofnullon windows & linux when pattern is unavailable
- Added
-
1.0.005 Feb 2024Release notes
Open source →BREAKING CHANGES:
Removed
initializemethod -> useSDTFScopeinsteadRemoved
dateFormatgetter -> usegetDatePattern()insteadRemoved
mediumDateFormatgetter -> usegetMediumDatePattern()insteadRemoved
longDateFormatgetter -> usegetLongDatePattern()insteadRemoved
timeFormatgetter -> usegetTimePattern()instead -
0.7.204 Feb 2024 -
0.7.104 Feb 2024 -
0.7.015 Apr 2023 -
0.6.112 Apr 2023 -
0.6.011 Apr 2023Release notes
Open source →- Introduced
SDTFScopewidget:
void main() { runApp(const SDTFScope(child: App())); } class App extends StatelessWidget { @override Widget build(BuildContext context) { final patterns = SystemDateTimeFormat.of(context); final datePattern = patterns.datePattern; final mediumDatePattern = patterns.mediumDatePattern; final longDatePattern = patterns.longDatePattern; final timePattern = patterns.timePattern; print(datePattern); // e.g. "M/d/yy" print(mediumDatePattern); // e.g. "MMM d,y" print(longDatePattern); // e.g. "MMMM d,y" print(timePattern); // e.g. "HH:mm" } }- Introduced raw async getters:
final format = SystemDateTimeFormat(); final datePattern = await format.getDatePattern(); final mediumDatePattern = await format.getMediumDatePattern(); final longDatePattern = await format.getLongDatePattern(); final timePattern = await format.getTimePattern(); print(datePattern); // e.g. "M/d/yy" print(mediumDatePattern); // e.g. "MMM d,y" print(longDatePattern); // e.g. "MMMM d,y" print(timePattern); // e.g. "HH:mm"Warning
Deprecated
initializemethod -> useSDTFScopeinsteadDeprecated
dateFormatgetter -> usegetDatePattern()insteadDeprecated
mediumDateFormatgetter -> usegetMediumDatePattern()insteadDeprecated
longDateFormatgetter -> usegetLongDatePattern()insteadDeprecated
timeFormatgetter -> usegetTimePattern()instead - Introduced
-
0.5.029 Mar 2023 -
0.4.115 Mar 2023 -
0.4.015 Mar 2023 -
0.3.005 Mar 2023 -
0.2.027 Feb 2023 -
0.1.126 Feb 2023 -
0.1.013 Feb 2023