1. তারিখ সময় ফর্ম্যাটার ক্লাস

বিশেষ DateTimeFormatterশ্রেণী তারিখ সময় API এ তার পথ খুঁজে পাওয়া যায়. এটির উদ্দেশ্য হল প্রোগ্রামারদের জন্য একটি তারিখ এবং সময়কে তাদের ইচ্ছামত সঠিক বিন্যাসে রূপান্তর করা যতটা সম্ভব সহজ করা। এবং আমরা জানাতে পেরে খুশি যে Java এর নির্মাতারা সফল হয়েছে।

এটি ব্যবহার করা খুবই সহজ। প্রথমে, আপনাকে একটি ক্লাস তৈরি করতে হবে DateTimeFormatterএবং একটি প্যাটার্নে পাস করতে হবে যা নির্দিষ্ট করে যে এটি কীভাবে তারিখ এবং সময় প্রদর্শন করবে:

DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);

যেখানে dtfএকটি DateTimeFormatterপরিবর্তনশীল. ক্লাসের একটি স্ট্যাটিক পদ্ধতি । এবং প্যাটার্ন হল একটি স্ট্রিং যা প্যাটার্ন নির্দিষ্ট করে যা তারিখ এবং সময় প্রদর্শন করতে ব্যবহার করা হবে।DateTimeFormatter.ofPattern()DateTimeFormatter

উদাহরণ

কোড কনসোল আউটপুট
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MM-dd-yy");
String text = dtf.format( LocalDateTime.now() );
System.out.println(text);


02-22-19

উপরের উদাহরণে, আমরা প্যাটার্নের উপর ভিত্তি করে ofPattern()একটি বস্তু তৈরি করতে পদ্ধতিটি ব্যবহার করি। DateTimeFormatterএবং পরের লাইনে, আমরা একটি বস্তুকে স্ট্রিং-এ format()রূপান্তর করার পদ্ধতি ব্যবহার করি। LocalDateTimeআপনি স্ক্রীনে ফলাফল দেখতে পাবেন।

আপনি তারিখের সময় API থেকে পদ্ধতিতে প্রায় যেকোনো বস্তু পাস করতে পারেন format()

স্ট্যাটিকটিও ofPattern()খুব সহজ: এটি একটি আর্গুমেন্ট হিসাবে একটি প্যাটার্ন নেয় এবং একটি DateTimeFormatterবস্তু ফেরত দেয়। সবচেয়ে আকর্ষণীয় অংশ প্যাটার্ন পাওয়া যায়.


2. ফরম্যাটিং প্যাটার্ন

তথ্য প্রদর্শন করার সময় একটি প্যাটার্ন হিসাবে পাস করা স্ট্রিং একটি প্যাটার্ন হিসাবে ব্যবহৃত হয়। MM মাসের সংখ্যা দ্বারা প্রতিস্থাপিত হয়, মাসের দিন দ্বারা dd এবং বছরের সংখ্যা দ্বারা yy । চিঠির ক্ষেত্রে ব্যাপারটা গুরুত্বপূর্ণ।

এই সময়ের নিদর্শনগুলির জন্য সম্পূর্ণ টেবিলটি হল:

চিঠি অর্থ
y বছর
এম মাস
d দিন
এইচ ঘন্টার
মি মিনিট
s সেকেন্ড
এস এক সেকেন্ডের হাজারতম
n ন্যানোসেকেন্ড।

মনে রাখা বিশেষ কঠিন নয়।

কিন্তু উদাহরণের প্যাটার্নে কেন বারবার MM, dd এবং yy অক্ষর অন্তর্ভুক্ত করা হয়েছে? ওয়েল, এটি যেখানে এটি আরো আকর্ষণীয় পায়.

সাধারণ ধারণা

অক্ষরের সংখ্যা পাঠ্যের দৈর্ঘ্যকে প্রভাবিত করে। যত বেশি অক্ষর থাকবে, পাঠ্য তত দীর্ঘ হবে।

যদি H অক্ষরটি একবার নির্দিষ্ট করা হয়, তাহলে 9 ঘন্টা 9 হিসাবে প্রদর্শিত হবে, কিন্তু যদি H অক্ষরটি পরপর দুইবার নির্দিষ্ট করা হয়, তাহলে 9 ঘন্টা 09 হিসাবে প্রদর্শিত হবে।

যদি y অক্ষরটি পরপর 2 বার উল্লেখ করা হয়, তাহলে 2 সংখ্যা ব্যবহার করে বছর লেখা হয়। যদি এটি একটি সারিতে 4 বার ঘটে, তাহলে 4টি সংখ্যা ব্যবহার করা হয়।

যদি M অক্ষরটি পরপর 2 বার উল্লেখ করা হয়, তাহলে মাসের সংখ্যা লেখা হয়। যদি পরপর 3 বার হয়, তাহলে মাসের নাম (এর প্রথম 3টি অক্ষর) ব্যবহার করা হয়। যদি পরপর 4 বার হয়, তাহলে মাসের পুরো নাম ব্যবহার করা হয়।

উদাহরণ:

কোড কনসোল আউটপুট
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMMM-dd-yyyy");
String text = dtf.format( LocalDateTime.now() );
System.out.println(text);


February-22-2019


3. প্যাটার্নের সম্পূর্ণ সারণী

সম্পূর্ণ টেবিলটি বেশ বড় এবং সুপার আকর্ষণীয়:

প্যাটার্ন প্যাটার্নের তারতম্য উদাহরণ বর্ণনা
y yy, yyyy 19; 2019 বছর
M/L M, MM, MMM, MMMM, MMMMM 1; 01; জান; জানুয়ারি; জে মাস
d d, dd 9; 09 দিন
এইচ H, HH 2; 02 ঘন্টার
মি মি, মিমি 3; 03 মিনিট
s s, ss 5; 05 সেকেন্ড
এস এস, এসএস, এসএসএস, ... 1; 12; 123 এক সেকেন্ডের হাজারতম
n n 123456789 ন্যানোসেকেন্ড
জি G, GGGG, GGGGG বিজ্ঞাপন; অ্যানো ডোমিনি; ক; যুগ
Q/q q, qq, qqq, qqq 3; 03; Q3; ৩য় ত্রৈমাসিক কোয়ার্টার
w w 13 বছরের সপ্তাহ
ডব্লিউ ডব্লিউ 3 মাসের সপ্তাহ
ইইই, ইইইই, ইইইইই সোম; সোমবার; এম সপ্তাহের দিন
e/c ই, ইই, ইইই, ইইইই, ইইইই 1; 01; সোম; সোমবার; এম সপ্তাহের দিন
পিএম আমি বা অপরাহ্ন
12 12 ঘন্টা ঘড়ি।
ভি ভিভি ইউরোপ/হেলসিঙ্কি সময় অঞ্চল
z zzzzz ইইটি; পূর্ব ইউরোপীয় মান সময় সময় অঞ্চল
ওওওওওও GMT+2; GMT+02:00 সময় অঞ্চল

যাইহোক, এটি আসলে একটি সম্পূর্ণ সংস্করণ নয়। আপনি এখানে সবচেয়ে সম্পূর্ণ সংস্করণ খুঁজে পেতে পারেন .



4. পার্সিং সময়

ক্লাসটি DateTimeFormatterশুধুমাত্র একটি প্রদত্ত প্যাটার্ন অনুসারে একটি তারিখ এবং সময়কে একটি স্ট্রিংয়ে রূপান্তর করার ক্ষমতার জন্যও আকর্ষণীয় নয়, বরং বিপরীত অপারেশন করার জন্যও!

একটি স্ট্রিং পার্সিং অর্থপূর্ণ টোকেনে বিভক্ত করার প্রক্রিয়া।

এটি দেখতে কেমন তা এখানে রয়েছে:

কোড কনসোল আউটপুট
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMMM-dd-yyyy");
LocalDate date = LocalDate.parse("February-23-2019", dtf);
System.out.println(date);


February-23-2019

প্রথমে, আমরা একটি DateTimeFormatterঅবজেক্ট তৈরি করি এবং প্যাটার্ন সেট করি যা পার্সিংয়ের জন্য ব্যবহৃত হয়।

LocalDate.parse()তারপরে আমরা or LocalTime.parse()or মেথডকে কল করি LocalDateTime.parse()এবং অবজেক্টের সাথে পার্স করার জন্য স্ট্রিং-এ পাস করি DateTimeFormatter, যা বুঝতে পারে কিভাবে পাস করা টেক্সটকে পার্স করতে হয় এবং এটি করতে কী প্যাটার্ন ব্যবহার করা উচিত।

আরেকটি উদাহরণ: এই সময় আমরা সময় বিশ্লেষণ করব।

কোড কনসোল আউটপুট
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime time = LocalTime.parse("23:59:59", dtf);
System.out.println(time);


23:59:59