tl; ডা
LocalDate.of( 2014 , 2 , 11 )
যদি আপনি ভয়ানক পুরানো java.util.Dateশ্রেণিটি ব্যবহার করার জন্য জেদ করেন তবে আধুনিক জাভা.টাইম ক্লাস থেকে রূপান্তর করুন ।
java.util.Date
.from(
LocalDate
.of( 2014 , 2 , 11 )
.atStartOfDay(
ZoneId.of( "Africa/Tunis" )
)
.toInstant()
)
বিশদ
আপনি যদি "সহজ" চান, আপনার জাভা 8 তে নতুন জাভা.টাইম প্যাকেজটি ব্যবহার করা উচিত জাভা ইউটি.ডেট এবং তারিখের। জাভা দিয়ে বান্ডিল করা ক্যালেন্ডার ক্লাসগুলির চেয়ে Java
java.time
Java.time জাভা 8 পাতাটা এবং পরে ফ্রেমওয়ার্ক বিরক্তিজনক পুরাতন java.util.Date/.Calendar শ্রেণীর supplants।
কেবলমাত্র তারিখ

কোনও LocalDateক্লাস জাভা.টাইমে অফার করে কোনও দিনের সময় বা সময় অঞ্চল ছাড়াই কেবলমাত্র তারিখের মান উপস্থাপন করে। উদাহরণস্বরূপ মন্ট্রিয়ালের চেয়ে প্যারিসে নতুন দিন শুরুর দিকে আপনার একটি তারিখ নির্ধারণ করার জন্য আপনার একটি সময় অঞ্চল প্রয়োজন। ZoneIdবর্গ সময় অঞ্চল জন্য।
ZoneId zoneId = ZoneId.of( "Asia/Singapore" );
LocalDate today = LocalDate.now( zoneId );
কনসোল করতে ডাম্প:
System.out.println ( "today: " + today + " in zone: " + zoneId );
আজ: 2015-11-26 জোনে: এশিয়া / সিঙ্গাপুর
বা বছর, মাস, দিন নির্দিষ্ট করতে কারখানার পদ্ধতি ব্যবহার করুন।
LocalDate localDate = LocalDate.of( 2014 , Month.FEBRUARY , 11 );
স্থানীয় তারিখ: 2014-02-11
অথবা DayOfWeekএনুম অবজেক্টের চেয়ে এক মাসের সংখ্যা 1-12 পাস করুন ।
LocalDate localDate = LocalDate.of( 2014 , 2 , 11 );
সময় অঞ্চল

একজন LocalDateযতক্ষণ না আপনি এটি একটি সময় অঞ্চল মধ্যে সমন্বয় কোনো সত্যিকারের অর্থ আছে। জাভা.টাইমে, আমরা একটি ZonedDateTimeঅবজেক্ট তৈরি করতে সময় অঞ্চল প্রয়োগ করি । তার মানে সময়ের একটি সময়, তবে কী সময়? সাধারণত দিনের প্রথম মুহুর্তের সাথে যেতে বোধগম্য হয়। আপনি হয়ত ভাবতে পারেন যে সময়টির অর্থ 00:00:00.000, তবে ডাইটলাইট সেভিং টাইম (ডিএসটি) এবং সম্ভবত অন্যান্য অসঙ্গতির কারণে সবসময় সত্য নয়। সেই সময়টি ধরে নেওয়ার পরিবর্তে, আমরা জাভা.টাইমকে ফোন করে দিনের প্রথম মুহূর্তটি নির্ধারণ করতে বলি atStartOfDay।
একটি নির্দিষ্ট করুন সঠিক সময় অঞ্চল নাম এর বিন্যাসে continent/regionযেমন America/Montreal, Africa/Casablancaঅথবা Pacific/Auckland। কখনও যেমন 3-4 চিঠি সংক্ষেপ ব্যবহার ESTবা ISTহিসাবে তারা না সত্য সময় অঞ্চল, না মান, এবং এমনকি অনন্য নয় (!)।
ZoneId zoneId = ZoneId.of( "Asia/Singapore" );
ZonedDateTime zdt = localDate.atStartOfDay( zoneId );
zdt: 2014-02-11T00: 00 + 08: 00 [এশিয়া / সিঙ্গাপুর]
ইউটিসি

ব্যাক-এন্ড কাজের জন্য (ব্যবসায়িক যুক্তি, ডাটাবেস, ডেটা স্টোরেজ এবং এক্সচেঞ্জ) আমরা সাধারণত ইউটিসি সময় অঞ্চল ব্যবহার করি । জাভা.টাইমে Instantক্লাসটি ইউটিসিতে টাইমলাইনে একটি মুহুর্তের প্রতিনিধিত্ব করে। জোনডেটটাইম থেকে কল করে একটি তাত্ক্ষণিক বস্তু বের করা যেতে পারে toInstant।
Instant instant = zdt.toInstant();
তাত্ক্ষণিক: 2014-02-10T16: 00: 00Z
রূপান্তর
আপনার java.util.Dateক্লাস পুরোপুরি ব্যবহার করা এড়ানো উচিত । তবে যদি আপনাকে অবশ্যই জাভা.টাইমের জন্য এখনও পুরানো কোডটি আপডেট করা হয়নি তবে আপনি পিছনে এবং পরে রূপান্তর করতে পারেন। পুরানো ক্লাসগুলিতে যুক্ত হওয়া নতুন রূপান্তর পদ্ধতির দিকে নজর দিন।
java.util.Date d = java.util.from( instant ) ;
…এবং…
Instant instant = d.toInstant() ;

জাভা.টাইম সম্পর্কে
Java.time ফ্রেমওয়ার্ক জাভা 8 এবং পরে পাতাটা করা হয়। এই ক্লাসগুলি , & , এর মতো সমস্যাযুক্ত পুরানো উত্তরাধিকারের তারিখ-সময়ের ক্লাসগুলিকে সহায়তা করে ।java.util.DateCalendarSimpleDateFormat
আরও জানতে, ওরাকল টিউটোরিয়াল দেখুন । এবং অনেকগুলি উদাহরণ এবং ব্যাখ্যাগুলির জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করুন। স্পেসিফিকেশনটি জেএসআর 310 ।
Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , মাইগ্রেশনে উপদেশ java.time ক্লাস।
আপনি আপনার ডাটাবেসের সাথে জাভা.টাইম অবজেক্টগুলি সরাসরি বিনিময় করতে পারেন । জেডিবিসি ৪.২ বা তারপরের সাথে অনুগত একটি জেডিবিসি ড্রাইভার ব্যবহার করুন । স্ট্রিংগুলির দরকার নেই, ক্লাসের প্রয়োজন নেই । হাইবারনেট 5 এবং জেপিএ 2.2 সমর্থন জাভা.টাইম ।java.sql.*
জাভা.টাইম ক্লাস কোথায় পাবেন?
আপডেট: জোদা-টাইম লাইব্রেরিটি এখন রক্ষণাবেক্ষণের মোডে রয়েছে এবং জাভা.টাইম ক্লাসগুলিতে স্থানান্তরের পরামর্শ দেয় । আমি এই বিভাগটি ইতিহাসের জন্য রেখে দিচ্ছি।
জোদা-সময়
এক কিছুর জন্য, জোদা-টাইম বুদ্ধিমান সংখ্যা ব্যবহার করে তাই ফেব্রুয়ারি হয় 2না 1। আরেকটি জিনিস, একটি জোডা-টাইম ডেটটাইম সত্যিকার অর্থে তার নির্ধারিত সময় অঞ্চলটি জবা.উটিল.ডেটের বিপরীতে জানে যা সময় অঞ্চল বলে মনে হয় তবে তা না।
এবং সময় অঞ্চলটি ভুলে যাবেন না। অন্যথায় আপনি জেভিএমের ডিফল্ট পেয়ে যাবেন।
DateTimeZone timeZone = DateTimeZone.forID( "Asia/Singapore" );
DateTime dateTimeSingapore = new DateTime( 2014, 2, 11, 0, 0, timeZone );
DateTime dateTimeUtc = dateTimeSingapore.withZone( DateTimeZone.UTC );
java.util.Locale locale = new java.util.Locale( "ms", "SG" );
String output = DateTimeFormat.forStyle( "FF" ).withLocale( locale ).print( dateTimeSingapore );
কনসোল করতে ডাম্প ...
System.out.println( "dateTimeSingapore: " + dateTimeSingapore );
System.out.println( "dateTimeUtc: " + dateTimeUtc );
System.out.println( "output: " + output );
যখন চালানো…
dateTimeSingapore: 2014-02-11T00:00:00.000+08:00
dateTimeUtc: 2014-02-10T16:00:00.000Z
output: Selasa, 2014 Februari 11 00:00:00 SGT
রূপান্তর
আপনার যদি অন্য শ্রেণীর সাথে ব্যবহারের জন্য java.util.Date এ রূপান্তর করতে হয় ...
java.util.Date date = dateTimeSingapore.toDate();