TL; ড
LocalDateTime.parse( // Lacking an offset or time zone, parse as a `LocalDateTime`. *Not* a specific moment in time.
"2008-01-01 13:15:00".replace( " " , "T" ) // Alter input string to comply with ISO 8601 standard format.
)
.toLocalDate() // Extract a date-only value.
.atStartOfDay( // Do not assume the day starts at 00:00:00. Let class determine start-of-day.
ZoneId.of( "Europe/Paris" ) // Determining a specific start-of-day requires a time zone.
) // Result is a `ZonedDateTime` object. At this point we have a specific moment in time, a point on the timeline.
.toString() // Generate a String in standard ISO 8601 format, wisely extended to append the name of the time zone in square brackets.
2008-01-01T00: 00 +01: 00 [ইউরোপ / প্যারিস]
আপনার পছন্দসই বিন্যাসে একটি স্ট্রিং তৈরি করতে, একটি পাস করুন DateTimeFormatter
।
LocalDateTime.parse( // Lacking an offset or time zone, parse as a `LocalDateTime`. *Not* a specific moment in time.
"2008-01-01 13:15:00".replace( " " , "T" ) // Alter input string to comply with ISO 8601 standard format.
)
.toLocalDate() // Extract a date-only value.
.atStartOfDay( // Do not assume the day starts at 00:00:00. Let class determine start-of-day.
ZoneId.of( "Europe/Paris" ) // Determining a specific start-of-day requires a time zone.
) // Result is a `ZonedDateTime` object. At this point we have a specific moment in time, a point on the timeline.
.format( // Generate a String representing the object’s value.
DateTimeFormatter.ISO_LOCAL_DATE_TIME // Built-in predefined formatter close to what you want.
)
.replace( "T" , " " ) // Replace the standard’s use of a 'T' in the middle with your desired SPACE character.
2008-01-01 00:00:00
বিস্তারিত
অন্যান্য উত্তরগুলি সঠিক, তবে এখন জাভা.টাইম ফ্রেমওয়ার্কের সাহায্যে পুরানো তারিখ-কালীন ক্লাসগুলি ব্যবহার করুন।
java.time
জাভা.টাইম ফ্রেমওয়ার্কটি জাভা 8 এবং তার পরে তৈরি করা হয়েছে। জাভা.টাইম কার্যকারিতাটির বেশিরভাগটি জাভা 6 এবং 7 ( থ্রিটেন-ব্যাকপোর্ট ) এ পুনরায় পোর্ট করা হয় এবং আরও অ্যান্ড্রয়েডে ( থ্রিটেনএবিপি ) অভিযোজিত ।
আইএসও 8601 ফর্ম্যাটের ক্যানোনিকাল সংস্করণ মেনে চলার জন্য প্রথমে ইনপুট স্ট্রিংটি পরিবর্তন করুন। মানক আইএসও 8601 ফর্ম্যাটগুলি জাভা.টাইম ক্লাসে ডিফল্টরূপে তারিখের সময়ের মানগুলিকে উপস্থাপনকারী স্ট্রিংগুলি পার্সিং / উত্পন্ন করার জন্য ব্যবহৃত হয়। আমাদের মাঝে সেই স্পেসটি মাঝখানে প্রতিস্থাপন করতে হবে T
।
String input = "2008-01-01 13:15:00".replace( " " , "T" ); // → 2008-01-01T13:15:00
এখন আমরা এটিকে একটি হিসাবে পার্স করতে পারি LocalDateTime
, যেখানে "স্থানীয়" অর্থ নির্দিষ্ট কোনও লোকেশন নয়। ইনপুটটিতে ইউটিসি বা টাইম জোন সম্পর্কিত কোনও অফসেট নেই cks
LocalDateTime ldt = LocalDateTime.parse( input );
ldt.toString ()… 2008-01-01T13: 15: 00
আপনি যদি দিনের সময় বা সময় অঞ্চল সম্পর্কে চিন্তা না করেন তবে একটিতে রূপান্তর করুন LocalDate
।
LocalDate ld = ldt.toLocalDate();
ld.toString ()… 2008-01-01
দিনের প্রথম মুহুর্ত
পরিবর্তে যদি আপনি দিনের প্রথম মুহুর্তে দিনের সময়সীমা সেট করতে চান, একটি ZonedDateTime
শ্রেণি ব্যবহার করুন , তারপরে LocalDate
তার atStartOfDay
পদ্ধতিটি কল করতে কোনও বস্তুতে রূপান্তর করুন । সচেতন থাকুন যে প্রথম মুহুর্তটি 00:00:00
দিবালোক সেভিং সময় বা সম্ভবত অন্যান্য অসঙ্গতির কারণে সময় নাও হতে পারে ।
সময় অঞ্চলটি গুরুত্বপূর্ণ কারণ যে কোনও নির্দিষ্ট মুহুর্তের জন্য অঞ্চলটি অঞ্চলভেদে তারিখটি পরিবর্তিত হয়। উদাহরণস্বরূপ, প্যারিসে মধ্যরাতের কয়েক মুহুর্ত প্যারিসিয়ানদের জন্য নতুন দিন তবে এখনও কানাডিয়ানদের জন্য মন্ট্রিয়ালে "গতকাল"।
ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = ldt.atZone( zoneId );
LocalDate ldFromZdt = zdt.toLocalDate();
ZonedDateTime zdtStartOfDay = ldFromZdt.atStartOfDay( zoneId );
zdtStartOfDay.toString ()… 2008-01-01T00: 00: 00-05: 00 [আমেরিকা / মন্ট্রিল]
ইউটিসি
ইউটিসি টাইম জোনের লেন্সের মধ্য দিয়ে সেই মুহূর্তটি দেখতে কোনও Instant
বস্তুটি বের করুন । উভয়ই ZonedDateTime
এবং Instant
সময়রেখায় একই মুহুর্তের প্রতিনিধিত্ব করবে তবে দুটি পৃথক প্রাচীর-ঘড়ির সময় হিসাবে প্রদর্শিত হবে ।
একটি Instant
জাভা.টাইমে সর্বদা সংজ্ঞা অনুসারে ইউটিসিতে বেসিক বিল্ডিং-ব্লক ক্লাস। এই ক্লাসটি ঘন ঘন ব্যবহার করুন, আপনার সাধারণভাবে আপনার ব্যবসায়িক যুক্তি, ডাটা স্টোরেজ এবং ইউটিসিতে ডেটা এক্সচেঞ্জ করা উচিত।
Instant instant = zdtStartOfDay.toInstant();
instant.toString ()… 2008-01-01T05: 00: 00Z
আমরা মধ্যরাতের স্ট্রোক-অফের চেয়ে 5 টা দেখি। স্ট্যান্ডার্ড ফর্ম্যাটে, প্রান্তটি Z
সংক্ষিপ্ত Zulu
এবং এর অর্থ "ইউটিসি"।
জাভা.টাইম সম্পর্কে
Java.time ফ্রেমওয়ার্ক জাভা 8 এবং পরে পাতাটা করা হয়। এই ক্লাসগুলি , & , এর মতো সমস্যাযুক্ত পুরানো উত্তরাধিকারের তারিখ-সময়ের ক্লাসগুলিকে সহায়তা করে ।java.util.Date
Calendar
SimpleDateFormat
Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , মাইগ্রেশনে উপদেশ java.time ক্লাস।
আরও জানতে, ওরাকল টিউটোরিয়ালটি দেখুন । এবং অনেকগুলি উদাহরণ এবং ব্যাখ্যার জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করুন। স্পেসিফিকেশনটি জেএসআর 310 ।
আপনি আপনার ডাটাবেসের সাথে জাভা.টাইম অবজেক্টগুলি সরাসরি বিনিময় করতে পারেন । জেডিবিসি ৪.২ বা তারপরের সাথে অনুগত একটি জেডিবিসি ড্রাইভার ব্যবহার করুন । স্ট্রিংগুলির দরকার নেই, ক্লাসের প্রয়োজন নেই ।java.sql.*
জাভা.টাইম ক্লাস কোথায় পাবেন?
ThreeTen-অতিরিক্ত প্রকল্প অতিরিক্ত শ্রেণীর সাথে java.time প্রসারিত করে। এই প্রকল্পটি জাভা.টাইমে সম্ভাব্য ভবিষ্যতের সংযোজনগুলির একটি প্রমাণযোগ্য ক্ষেত্র। আপনি এখানে কিছু দরকারী শ্রেণীর যেমন খুঁজে পেতে পারেন Interval
, YearWeek
, YearQuarter
, এবং আরো ।