উত্তর:
Date
কোনও যুক্তি ছাড়াই কেবল একটি নতুন অবজেক্ট তৈরি করুন; এটি নতুন অবজেক্টকে বর্তমান তারিখ এবং সময় নির্ধারণ করবে।
import java.util.Date;
Date d = new Date();
এর কথায় Javadocs জন্যশূন্য-আর্গুমেন্ট :
একটি তারিখ অবজেক্ট বরাদ্দ করে এবং এটি সূচনা করে যাতে এটি নির্ধারিত সময়ের মিলিসেকেন্ডে পরিমাপকৃত সময়টিকে উপস্থাপন করে।
আপনি ব্যবহার করছেন java.util.Date
এবং করছেন না তা নিশ্চিত করুন java.sql.Date
- পরবর্তীটির কোনও শূন্য-আরগ নির্মাণকারী নেই এবং এর কিছুটা আলাদা শব্দার্থবিজ্ঞান রয়েছে যা সম্পূর্ণ আলাদা কথোপকথনের বিষয়। :)
জাভা তারিখ এবং ক্যালেন্ডার ক্লাসগুলি অনেকেই খারাপভাবে ডিজাইন করেছেন বলে বিবেচনা করে। আপনি জোডা সময় এক নজর করা উচিত জাভা , জাভা অন্তর্নির্মিত তারিখ লাইব্রেরির পরিবর্তে সাধারণত ব্যবহৃত একটি লাইব্রেরির ।
DateTime.Now
জোদা সময়ের সমতুল্য হ'ল:
DateTime dt = new DateTime();
হালনাগাদ
মন্তব্যে উল্লিখিত হিসাবে, জোদা সময়ের সর্বশেষতম সংস্করণগুলির একটি DateTime.now()
পদ্ধতি রয়েছে, তাই:
DateTime dt = DateTime.now();
Instant.now()
জাভা.ইটিল.ডেট ক্লাসটি জাভা ৮ এবং তার পরে নতুন জাভা.টাইম প্যাকেজ ( টিউটোরিয়াল ) দ্বারা তৈরি হয়েছে। পুরানো java.util. তারিখ /.ক্যালেন্ডার ক্লাসগুলি কুখ্যাত সমস্যা, বিভ্রান্তিকর এবং ত্রুটিযুক্ত। এগুলি এড়িয়ে চলুন।
ZonedDateTime
জাভা.টাইমে বর্তমান মুহুর্তটি পান।
ZonedDateTime now = ZonedDateTime.now();
একটি ZonedDateTime
encapsulates:
যদি কোনও সময় অঞ্চল নির্দিষ্ট না করা থাকে, আপনার জেভিএমের বর্তমান ডিফল্ট সময় অঞ্চলটি নিঃশব্দভাবে বরাদ্দ করা হয়েছে। আপনার পছন্দসই / প্রত্যাশিত সময় অঞ্চলটি ডিফল্টর উপর অন্তর্নিহিত নির্ভরতার চেয়ে নির্দিষ্ট করা ভাল।
ZoneId z = ZoneId.of( "Pacific/Auckland" );
ZonedDateTime zdt = ZonedDateTime.now( z );
সাধারণত ইউটিসিতে আপনার ব্যাক-এন্ড কাজ (ব্যবসায়িক যুক্তি, ডাটাবেস, স্টোরেজ, ডেটা এক্সচেঞ্জ) করার অভ্যাসটি পেতে সাধারণত আরও ভাল টাইম জোনে । উপরের কোডটি জেভিএমের বর্তমান ডিফল্ট টাইম জোনের উপর পুরোপুরি নির্ভর করে।
Instant
বর্গ ন্যানোসেকেন্ড একটি রেজোলিউশনে UTC- এ টাইমলাইনে একটি মুহূর্ত প্রতিনিধিত্ব করে।
Instant instant = Instant.now();
Instant
বর্গ java.time একটি মৌলিক বিল্ডিং-ব্লক ক্লাস হয় এবং আপনার কোডে প্রায়ই ব্যবহৃত হতে পারে।
আপনার যখন বিন্যাসে আরও নমনীয়তা দরকার তখন একটিতে রূপান্তর করুন OffsetDateTime
। একটি ZoneOffset
বস্তু নির্দিষ্ট করুন । ইউটিসির জন্য ইউটিসির জন্য হ্যান্ডি ধ্রুবক ব্যবহার করুন ।
OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC );
ব্যবহারকারীর কাছে উপস্থাপনের জন্য আপনি সহজেই অন্য একটি টাইম জোনের সাথে সামঞ্জস্য করুন। যথাযথ টাইম জোনের নাম ব্যবহার করুন , কখনও কখনও 3-4 টি লেটার কোড যেমন EST
বা হয় না IST
।
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime nowMontreal = instant.atZone( z );
স্থানীয়ভাবে চিহ্নিত সেই তারিখ-সময়ের মানটির একটি স্ট্রিং প্রতিনিধিত্ব করুন।
String output = DateTimeFormatter
.ofLocalizedDate( FormatStyle.FULL )
.withLocale( Locale.CANADA_FRENCH )
.format ( nowMontreal );
Instant
অথবা, ইউটিসিতে থাকতে, ব্যবহার করুন Instant
। Instant
সর্বদা ইউটিসিতে ন্যানোসেকেন্ড রেজোলিউশনে কোনও অবজেক্ট সময়রেখার এক মুহূর্তকে উপস্থাপন করে। এটি সময় অঞ্চল নির্ধারণের সাথে জোনড তারিখ-সময়ের জন্য বিল্ডিং ব্লক সরবরাহ করে। আপনি ধারণাটি এইভাবে ভাবতে পারেন:
আপনি একটি Instant
থেকে একটি নিষ্কাশন করতে পারেন ZonedDateTime
।
Instant instantNow = zdt.toInstant();
আপনি একটি তাত্ক্ষণিক দিয়ে শুরু করতে পারেন। Instant
সর্বদা ইউটিসির মতো এখানে সময় অঞ্চল নির্দিষ্ট করার দরকার নেই ।
Instant now = Instant.now();
আমি ক্যালেন্ডার অবজেক্ট ব্যবহার করতে পছন্দ করি।
Calendar now = GregorianCalendar.getInstance()
আমি কাজ করতে অনেক সহজ মনে করি। আপনি ক্যালেন্ডার থেকে একটি তারিখ অবজেক্টও পেতে পারেন।
http://java.sun.com/javase/6/docs/api/java/util/GregorianCalendar.html
Calendar.getInstance()
জাভা 8 এ এটি:
ZonedDateTime dateTime = ZonedDateTime.now();
java.lang.System.currentTimeMillis();
যুগে যুগে ডেটটাইম ফিরিয়ে দেবে
আপনি যদি কোনও নতুন তারিখ অবজেক্ট তৈরি করেন তবে ডিফল্টরূপে এটি বর্তমান সময়ে সেট করা হবে:
import java.util.Date;
Date now = new Date();
তারিখ এবং সময় ব্যবহারের ক্ষেত্রে জাভা সর্বদা অপর্যাপ্ত সমর্থন পেয়েছে। উদাহরণস্বরূপ, বিদ্যমান ক্লাসগুলি (যেমন java.util.Date
এবং SimpleDateFormatter
) থ্রেড-নিরাপদ নয় যা সম্মতিযুক্ত সমস্যার কারণ হতে পারে। এছাড়াও এপিআইতে কিছু ত্রুটি রয়েছে। উদাহরণস্বরূপ, বছরগুলি java.util.Date
1900 এ শুরু হয়, মাসগুলি 1 থেকে শুরু হয় এবং দিনগুলি 0 at থেকে শুরু হয় খুব স্বজ্ঞাত নয়। এই সমস্যাগুলি তৃতীয় পক্ষের তারিখ এবং সময় গ্রন্থাগারগুলির জনপ্রিয়তার দিকে পরিচালিত করে Joda-Time
। একটি নতুন তারিখ এবং সময় সম্বোধন করতে এপিআই জাভা এসই 8 এর জন্য ডিজাইন করা হয়েছে।
LocalDateTime timePoint = LocalDateTime.now();
System.out.println(timePoint);
অনুযায়ী ডক :
পদ্ধতিটি
now()
সিস্টেমের ক্লক এবং ডিফল্ট সময়-অঞ্চলটি ব্যবহার করে বর্তমান তারিখ-সময়টি দেয়, নਾਲ নয় । এটি ডিফল্ট সময়-অঞ্চলের সিস্টেম ঘড়ি থেকে বর্তমান তারিখ-সময়টি অর্জন করে। এটি বর্তমান তারিখ-সময়টি পেতে ডিফল্ট সময়-অঞ্চলে সিস্টেমের ঘড়ির প্রশ্ন করবে। এই পদ্ধতিটি ব্যবহার করা পরীক্ষার জন্য বিকল্প ঘড়ি ব্যবহারের ক্ষমতা আটকাবে কারণ ঘড়িটি কঠোর কোডড।