robiulsuny

Flutter এবং Dart-এ Date & Time Formatting এর সহজ গাইড

অ্যাপ ডেভেলপমেন্টের সময় তারিখ এবং সময় (Date & Time) দেখানো একটি নিত্যনৈমিত্তিক কাজ। কিন্তু DateTime.now().toString() ব্যবহার করলে যে আউটপুট আসে, তা ইউজারদের দেখানোর মতো সুন্দর হয় না।

এই সমস্যার সমাধান হলো intl প্যাকেজ। আজকের ব্লগে আমরা দেখবো কিভাবে Dart-এ খুব সহজেই তারিখ এবং সময়কে বিভিন্ন ফরম্যাটে সাজানো যায়।

🛠️ প্রস্তুতি (Setup)

কোড লেখার আগে আমাদের প্রজেক্টে intl প্যাকেজটি যুক্ত করতে হবে। টার্মিনালে এই কমান্ডটি রান করুন:

flutter pub add intl

এবং আপনার ডার্ট ফাইলের শুরুতে ইম্পোর্ট করুন:

import 'package:intl/intl.dart';

১. বেসিক ফরম্যাটিং (Built-in Constructors)

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

২. কাস্টম ফরম্যাটিং (Custom Patterns)

অনেক সময় বিল্ট-ইন ফরম্যাট আমাদের প্রয়োজন মেটাতে পারে না। তখন আমরা নিজস্ব প্যাটার্ন স্ট্রিং ব্যবহার করে ফরম্যাট তৈরি করতে পারি।

📅 তারিখের বিভিন্ন ফরম্যাট (Date Formats)

নিচে কিছু জনপ্রিয় ফরম্যাট দেওয়া হলো:

// সচরাচর ব্যবহৃত (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

⏰ সময়ের বিভিন্ন ফরম্যাট (Time Formats)

সময়ের ক্ষেত্রে 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

🗓️ তারিখ ও সময় একসাথে (Combined)

কখনও কখনও আমাদের তারিখ এবং সময় একসাথে দেখানোর প্রয়োজন হয়:

// ডাটাবেস বা লগের জন্য পারফেক্ট
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 

💡 মনে রাখার মতো কিছু টিপস (Cheat Sheet)

কাস্টম প্যাটার্ন তৈরি করার সময় নিচের সংকেতগুলো মনে রাখবেন:

আশা করি এই গাইডটি আপনার ফ্লার্টার অ্যাপে ডেট ফরম্যাটিং করতে সাহায্য করবে!