অ্যাপ ডেভেলপমেন্টের সময় তারিখ এবং সময় (Date & Time) দেখানো একটি নিত্যনৈমিত্তিক কাজ। কিন্তু DateTime.now().toString() ব্যবহার করলে যে আউটপুট আসে, তা ইউজারদের দেখানোর মতো সুন্দর হয় না।
এই সমস্যার সমাধান হলো intl প্যাকেজ। আজকের ব্লগে আমরা দেখবো কিভাবে Dart-এ খুব সহজেই তারিখ এবং সময়কে বিভিন্ন ফরম্যাটে সাজানো যায়।
কোড লেখার আগে আমাদের প্রজেক্টে intl প্যাকেজটি যুক্ত করতে হবে। টার্মিনালে এই কমান্ডটি রান করুন:
flutter pub add intl
এবং আপনার ডার্ট ফাইলের শুরুতে ইম্পোর্ট করুন:
import 'package:intl/intl.dart';
intl প্যাকেজে কিছু তৈরি করা (built-in) ফরম্যাট আছে যা খুব দ্রুত ব্যবহার করা যায়। ধরুন, now হলো বর্তমান সময়।
DateTime now = DateTime.now();
// ১. ছোট ফরম্যাট (Month/Day/Year)
print(DateFormat.yMd().format(now));
// আউটপুট: 12/31/2023
// ২. মাঝারি ফরম্যাট (Short Month Name)
print(DateFormat.yMMMd().format(now));
// আউটপুট: Dec 31, 2023
// ৩. পূর্ণাঙ্গ ফরম্যাট (Full Month Name)
print(DateFormat.yMMMMd().format(now));
// আউটপুট: December 31, 2023
// ৪. সময় (AM/PM সহ)
print(DateFormat.jm().format(now));
// আউটপুট: 5:08 PM
// ৫. ২৪ ঘণ্টার ফরম্যাট (Seconds সহ)
print(DateFormat.Hms().format(now));
// আউটপুট: 17:08:42
অনেক সময় বিল্ট-ইন ফরম্যাট আমাদের প্রয়োজন মেটাতে পারে না। তখন আমরা নিজস্ব প্যাটার্ন স্ট্রিং ব্যবহার করে ফরম্যাট তৈরি করতে পারি।
নিচে কিছু জনপ্রিয় ফরম্যাট দেওয়া হলো:
// সচরাচর ব্যবহৃত (Database friendly)
print(DateFormat('yyyy-MM-dd').format(now));
// আউটপুট: 2023-12-31
// আমাদের দেশে প্রচলিত (Day/Month/Year)
print(DateFormat('dd/MM/yyyy').format(now));
// আউটপুট: 31/12/2023
// আমেরিকান স্টাইল (Month/Day/Year)
print(DateFormat('MM/dd/yyyy').format(now));
// আউটপুট: 12/31/2023
সময়ের ক্ষেত্রে HH (বড় হাতের) মানে ২৪ ঘণ্টা এবং hh (ছোট হাতের) মানে ১২ ঘণ্টা ফরম্যাট।
// ২৪ ঘণ্টার ঘড়ি
print(DateFormat('HH:mm').format(now));
// আউটপুট: 17:08
// ১২ ঘণ্টার ঘড়ি (সাথে AM/PM)
print(DateFormat('hh:mm a').format(now));
// আউটপুট: 05:08 PM
// সেকেন্ড সহ সময়
print(DateFormat('HH:mm:ss').format(now));
// আউটপুট: 17:08:42
কখনও কখনও আমাদের তারিখ এবং সময় একসাথে দেখানোর প্রয়োজন হয়:
// ডাটাবেস বা লগের জন্য পারফেক্ট
print(DateFormat('yyyy-MM-dd HH:mm:ss').format(now));
// আউটপুট: 2023-12-31 17:08:42
// ইউজার ইন্টারফেসের জন্য সুন্দর ফরম্যাট
print(DateFormat('MMM d, yyyy h:mm a').format(now));
// আউটপুট: Dec 31, 2023 5:08 PM
কাস্টম প্যাটার্ন তৈরি করার সময় নিচের সংকেতগুলো মনে রাখবেন:
yyyy = ৪ সংখ্যার বছর (2023)MM = মাসের সংখ্যা (12) |
MMM = মাসের ছোট নাম (Dec) |
MMMM = পুরো নাম (December) |
dd = দিন (31) |
EEEE = বারের নাম (Sunday) |
HH = ২৪ ঘণ্টা (17) |
hh = ১২ ঘণ্টা (05) |
mm = মিনিট (মনে রাখবেন: ছোট হাতের mm হলো মিনিট, আর বড় হাতের MM হলো মাস)a = AM বা PM দেখানোর জন্য।আশা করি এই গাইডটি আপনার ফ্লার্টার অ্যাপে ডেট ফরম্যাটিং করতে সাহায্য করবে!