ถ้าชอบกด Like ใน Pub.dev หรือกดให้ดาวใน Github Repo หน่อยน้า 😄
นี่เป็น Library Package ภาษา Dart สำหรับเสริม method ที่จะทำให้ DateTime
และ DateFormat
คืนค่าออกมาเป็นปีพุทธศักราช และแสดงคำว่า พ.ศ. แทน ค.ศ. ครับ
ทำออกมาให้สามารถใช้กับ DateTime และ DateFormat ทั่วไปได้ทันที
อาจจะมีวิธีที่ดีกว่านี้นะ แต่แบบนี้ก็สามารถใช้งานได้แล้ว หลายๆ ครั้งเราต้องการแค่คำว่า พ.ศ. หรือปี 25XX แทน 19XX หรือ 20XX เท่านั้น
ติดตั้ง package ผ่านไฟล์ pubspec.yaml
dependencies:
intl: ^0.16.1
buddhist_datetime_dateformat: ^1.0.1
ไปที่ไฟล์ main.dart
. import package 3 บรรทัดข้างล่างนี้ และอย่างลืม 2 บรรทัดในส่วนของ main()
ด้วย
// ใช้สำหรับโค้ด `Intl.defaultLocale = "th";`
import 'package:intl/intl.dart';
// ใช้สำหรับโค้ด initializeDateFormatting()
import 'package:intl/date_symbol_data_local.dart';
// อันนี้แหละ ส่วนเสริม
import 'package:buddhist_datetime_dateformat/buddhist_datetime_dateformat.dart';
void main() {
// กำหนด locale ที่นี่
Intl.defaultLocale = "th";
initializeDateFormatting();
runApp(MyApp());
}
- You will found
.yearInBuddhistCalendar
property inDateTime
's instance. This will return converted year value into Buddhist era. - Also
.formatInBuddhistCalendarThai(datetime)
method inDateFormat
which return correct format for Thai language if you pass DateTime's instance into it.
var now = DateTime.now();
var onlyBuddhistYear = now.yearInBuddhistCalendar;
// ค่าปี now.year ปกติจะได้ 2020
// ถ้าเรียกผ่าน now.yearInBuddhistCalendar จะได้เป็น 2563
var formatter = DateFormat.yMMMMEEEEd();
var dateInBuddhistCalendarFormat = formatter.formatInBuddhistCalendarThai(now);
// ค่า formatter.format(now) ปกติจะได้เป็นปี ค.ศ. 2020
// ถ้าเรียกผ่าน formatter.formatInBuddhistCalendarThai(now) จะได้เป็น พ.ศ. 2563