Skip to content

Instantly share code, notes, and snippets.

@ltvu93
Last active January 30, 2024 03:26
Show Gist options
  • Save ltvu93/6048c4f1f5a6aaa170aca81097a67659 to your computer and use it in GitHub Desktop.
Save ltvu93/6048c4f1f5a6aaa170aca81097a67659 to your computer and use it in GitHub Desktop.
import 'package:flutter/material.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart';
void main() async {
await initializeDateFormatting();
runApp(TestDateFormatApp());
}
class TestDateFormatApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: TestDateFormatScreen(),
);
}
}
class TestDateFormatScreen extends StatefulWidget {
const TestDateFormatScreen({super.key});
@override
State<TestDateFormatScreen> createState() => _TestDateFormatScreenState();
}
class _TestDateFormatScreenState extends State<TestDateFormatScreen> {
String _curLocale = 'en_US';
@override
Widget build(BuildContext context) {
final now = DateTime.now();
final icuConstantNames = [
DateFormat.ABBR_MONTH,
DateFormat.DAY,
DateFormat.ABBR_WEEKDAY,
DateFormat.WEEKDAY,
DateFormat.ABBR_STANDALONE_MONTH,
DateFormat.STANDALONE_MONTH,
DateFormat.NUM_MONTH,
DateFormat.NUM_MONTH_DAY,
DateFormat.NUM_MONTH_WEEKDAY_DAY,
DateFormat.ABBR_MONTH_DAY,
DateFormat.ABBR_MONTH_WEEKDAY_DAY,
DateFormat.MONTH,
DateFormat.MONTH_DAY,
DateFormat.MONTH_WEEKDAY_DAY,
DateFormat.ABBR_QUARTER,
DateFormat.QUARTER,
DateFormat.YEAR,
DateFormat.YEAR_NUM_MONTH,
DateFormat.YEAR_NUM_MONTH_DAY,
DateFormat.YEAR_NUM_MONTH_WEEKDAY_DAY,
DateFormat.YEAR_ABBR_MONTH,
DateFormat.YEAR_ABBR_MONTH_DAY,
DateFormat.YEAR_ABBR_MONTH_WEEKDAY_DAY,
DateFormat.YEAR_MONTH,
DateFormat.YEAR_MONTH_DAY,
DateFormat.YEAR_MONTH_WEEKDAY_DAY,
DateFormat.YEAR_ABBR_QUARTER,
DateFormat.YEAR_QUARTER,
DateFormat.HOUR24,
DateFormat.HOUR24_MINUTE,
DateFormat.HOUR24_MINUTE_SECOND,
DateFormat.HOUR,
DateFormat.HOUR_MINUTE,
DateFormat.HOUR_MINUTE_SECOND,
];
return Scaffold(
body: SafeArea(
child: SingleChildScrollView(
padding: const EdgeInsets.all(16),
child: Column(
children: [
DropdownButton<String>(
value: _curLocale,
icon: const Icon(Icons.arrow_downward),
elevation: 16,
style: const TextStyle(color: Colors.deepPurple),
underline: Container(
height: 2,
color: Colors.deepPurpleAccent,
),
onChanged: (value) {
setState(() {
_curLocale = value!;
});
},
items: DateFormat.allLocalesWithSymbols()
.map<DropdownMenuItem<String>>((value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
),
const SizedBox(height: 8),
ListView.separated(
primary: false,
shrinkWrap: true,
itemCount: icuConstantNames.length,
itemBuilder: (_, index) {
final dateFormat =
DateFormat(icuConstantNames[index], _curLocale);
return Padding(
padding: const EdgeInsets.symmetric(vertical: 16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Text('${index + 1}/'),
// SizedBox(height: 8),
Text(
dateFormat.pattern ?? '',
),
const SizedBox(height: 8),
Text(dateFormat.format(now)),
],
),
);
},
separatorBuilder: (_, __) => Container(
height: 1,
color: Colors.black,
),
),
],
),
),
),
);
}
}
@ltvu93
Copy link
Author

ltvu93 commented Aug 18, 2023

en_US

LLL
Aug

d
18

ccc
Fri

cccc
Friday

LLL
Aug

LLLL
August

L
8

M/d
8/18

EEE, M/d
Fri, 8/18

MMM d
Aug 18

EEE, MMM d
Fri, Aug 18

LLLL
August

MMMM d
August 18

EEEE, MMMM d
Friday, August 18

QQQ
Q3

QQQQ
3rd quarter

y
2023

M/y
8/2023

M/d/y
8/18/2023

EEE, M/d/y
Fri, 8/18/2023

MMM y
Aug 2023

MMM d, y
Aug 18, 2023

EEE, MMM d, y
Fri, Aug 18, 2023

MMMM y
August 2023

MMMM d, y
August 18, 2023

EEEE, MMMM d, y
Friday, August 18, 2023

QQQ y
Q3 2023

QQQQ y
3rd quarter 2023

HH
11

HH:mm
11:05

HH:mm:ss
11:05:25

HH
11

HH:mm
11:05

HH:mm:ss
11:05:25

LLL
Aug

d
18

ccc
Fri

cccc
Friday

LLL
Aug

LLLL
August

L
8

M/d
8/18

EEE, M/d
Fri, 8/18

MMM d
Aug 18

EEE, MMM d
Fri, Aug 18

LLLL
August

MMMM d
August 18

EEEE, MMMM d
Friday, August 18

QQQ
Q3

QQQQ
3rd quarter

y
2023

M/y
8/2023

M/d/y
8/18/2023

EEE, M/d/y
Fri, 8/18/2023

MMM y
Aug 2023

MMM d, y
Aug 18, 2023

EEE, MMM d, y
Fri, Aug 18, 2023

MMMM y
August 2023

MMMM d, y
August 18, 2023

EEEE, MMMM d, y
Friday, August 18, 2023

QQQ y
Q3 2023

QQQQ y
3rd quarter 2023

HH
11

HH:mm
11:05

HH:mm:ss
11:05:32

h a
11 AM

h:mm a
11:05 AM

h:mm:ss a
11:05:32 AM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment