উত্তর:
আপনি এর java.time.LocalDateTimeজন্য getters ব্যবহার করতে পারেন ।
LocalDateTime now = LocalDateTime.now();
int year = now.getYear();
int month = now.getMonthValue();
int day = now.getDayOfMonth();
int hour = now.getHour();
int minute = now.getMinute();
int second = now.getSecond();
int millis = now.get(ChronoField.MILLI_OF_SECOND); // Note: no direct getter available.
System.out.printf("%d-%02d-%02d %02d:%02d:%02d.%03d", year, month, day, hour, minute, second, millis);
বা, আপনি যখন জাভা 8 এ নেই, তখন ব্যবহার করুন java.util.Calendar।
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
int month = now.get(Calendar.MONTH) + 1; // Note: zero based!
int day = now.get(Calendar.DAY_OF_MONTH);
int hour = now.get(Calendar.HOUR_OF_DAY);
int minute = now.get(Calendar.MINUTE);
int second = now.get(Calendar.SECOND);
int millis = now.get(Calendar.MILLISECOND);
System.out.printf("%d-%02d-%02d %02d:%02d:%02d.%03d", year, month, day, hour, minute, second, millis);
যেভাবেই হোক, এই হিসাবে এখন পর্যন্ত মুদ্রণ:
2010-04-16 15: 15: 17.816
এটিকে রূপান্তর intকরতে String, ব্যবহার করুন String#valueOf()।
যদি আপনার অভিপ্রায়টি সর্বোপরি মানব বান্ধব স্ট্রিং বিন্যাসে সেগুলি সাজানোর এবং প্রদর্শন করার জন্য হয় তবে জাভা 8 এর java.time.format.DateTimeFormatter( টিউটোরিয়ালটি এখানে ) আরও ভাল ব্যবহার করুন ,
LocalDateTime now = LocalDateTime.now();
String format1 = now.format(DateTimeFormatter.ISO_DATE_TIME);
String format2 = now.atZone(ZoneId.of("GMT")).format(DateTimeFormatter.RFC_1123_DATE_TIME);
String format3 = now.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss", Locale.ENGLISH));
System.out.println(format1);
System.out.println(format2);
System.out.println(format3);
বা যখন আপনি এখনও জাভা 8 এ নেই, ব্যবহার করুন java.text.SimpleDateFormat:
Date now = new Date(); // java.util.Date, NOT java.sql.Date or java.sql.Timestamp!
String format1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.ENGLISH).format(now);
String format2 = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.ENGLISH).format(now);
String format3 = new SimpleDateFormat("yyyyMMddHHmmss", Locale.ENGLISH).format(now);
System.out.println(format1);
System.out.println(format2);
System.out.println(format3);
যেভাবেই হোক, এই ফলন:
2010-04-16T15: 15: 17,816 শুক্র, 16 এপ্রিল 2010 15:15:17 GMT 20100416151517
SimpleDateFormatবা DateTimeFormatterসেই বিশেষ কাজের জন্য করব :)
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH).format(new Date());
জোদা-সময়ে স্যুইচ করুন এবং আপনি এটি তিনটি লাইনে করতে পারেন
DateTime jodaTime = new DateTime();
DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss.SSS");
System.out.println("jodaTime = " + formatter.print(jodaTime));
আপনারও কোনও ক্যালেন্ডার ব্যবহার না করেই তারিখের পৃথক ক্ষেত্রগুলিতে সরাসরি অ্যাক্সেস রয়েছে।
System.out.println("year = " + jodaTime.getYear());
System.out.println("month = " + jodaTime.getMonthOfYear());
System.out.println("day = " + jodaTime.getDayOfMonth());
System.out.println("hour = " + jodaTime.getHourOfDay());
System.out.println("minute = " + jodaTime.getMinuteOfHour());
System.out.println("second = " + jodaTime.getSecondOfMinute());
System.out.println("millis = " + jodaTime.getMillisOfSecond());
আউটপুট নিম্নরূপ:
jodaTime = 2010-04-16 18:09:26.060
year = 2010
month = 4
day = 16
hour = 18
minute = 9
second = 26
millis = 60
Http://www.joda.org/joda-time/ অনুসারে
জোডা-টাইম জাভা-র জন্য ডিস্টিক স্ট্যান্ডার্ড তারিখ এবং সময় গ্রন্থাগার। জাভা এসই 8 থেকে, ব্যবহারকারীদের জাভা.টাইম (জেএসআর -310) এ মাইগ্রেট করতে বলা হয়।
// Java 8
System.out.println(LocalDateTime.now().getYear()); // 2015
System.out.println(LocalDateTime.now().getMonth()); // SEPTEMBER
System.out.println(LocalDateTime.now().getDayOfMonth()); // 29
System.out.println(LocalDateTime.now().getHour()); // 7
System.out.println(LocalDateTime.now().getMinute()); // 36
System.out.println(LocalDateTime.now().getSecond()); // 51
System.out.println(LocalDateTime.now().get(ChronoField.MILLI_OF_SECOND)); // 100
// Calendar
System.out.println(Calendar.getInstance().get(Calendar.YEAR)); // 2015
System.out.println(Calendar.getInstance().get(Calendar.MONTH ) + 1); // 9
System.out.println(Calendar.getInstance().get(Calendar.DAY_OF_MONTH)); // 29
System.out.println(Calendar.getInstance().get(Calendar.HOUR_OF_DAY)); // 7
System.out.println(Calendar.getInstance().get(Calendar.MINUTE)); // 35
System.out.println(Calendar.getInstance().get(Calendar.SECOND)); // 32
System.out.println(Calendar.getInstance().get(Calendar.MILLISECOND)); // 481
// Joda Time
System.out.println(new DateTime().getYear()); // 2015
System.out.println(new DateTime().getMonthOfYear()); // 9
System.out.println(new DateTime().getDayOfMonth()); // 29
System.out.println(new DateTime().getHourOfDay()); // 7
System.out.println(new DateTime().getMinuteOfHour()); // 19
System.out.println(new DateTime().getSecondOfMinute()); // 16
System.out.println(new DateTime().getMillisOfSecond()); // 174
// Formatted
// 2015-09-28 17:50:25.756
System.out.println(new Timestamp(System.currentTimeMillis()));
// 2015-09-28T17:50:25.772
System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.ENGLISH).format(new Date()));
// Java 8
// 2015-09-28T17:50:25.810
System.out.println(LocalDateTime.now());
// joda time
// 2015-09-28 17:50:25.839
System.out.println(DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss.SSS").print(new org.joda.time.DateTime()));
জাভা 8 এবং তার পরে, জাভা.টাইম প্যাকেজটি ব্যবহার করুন ।
ZonedDateTime.now().getYear();
ZonedDateTime.now().getMonthValue();
ZonedDateTime.now().getDayOfMonth();
ZonedDateTime.now().getHour();
ZonedDateTime.now().getMinute();
ZonedDateTime.now().getSecond();
ZonedDateTime.now()ডিফল্ট সময়-অঞ্চলে সিস্টেম ঘড়ি থেকে বর্তমান তারিখ-সময়টি ফিরিয়ে দেওয়া একটি স্থিতিশীল পদ্ধতি। সমস্ত প্রাপ্ত পদ্ধতিগুলি একটি intমান দেয়।
LocalDateTimeঅবশ্যই এই জন্য ভুল বর্গ। সময় অঞ্চল বা অফসেট-ইউটিসি থেকে তার কোনো ধারণা উদাসীন না পারেন, একটি নির্দিষ্ট মুহূর্ত ট্র্যাক করতে ব্যবহার করা যেতে, এটা না টাইমলাইনে একটি বিন্দু। ব্যবহার করুন Instant, ZonedDateTimeবা OffsetDateTimeপরিবর্তে।
ZonedDateTime।
ZonedDateTime.now( // Capture current moment as seen in the wall-clock time used by the people of a particular region (a time zone).
ZoneId.of( "America/Montreal" ) // Specify desired/expected time zone. Or pass `ZoneId.systemDefault` for the JVM’s current default time zone.
) // Returns a `ZonedDateTime` object.
.getMinute() // Extract the minute of the hour of the time-of-day from the `ZonedDateTime` object.
42
ZonedDateTimeকোনও নির্দিষ্ট অঞ্চলের (একটি অঞ্চল অঞ্চল) লোকেরা ব্যবহৃত প্রাচীর-ঘড়ির সময় হিসাবে দেখা বর্তমান মুহুর্তটি ক্যাপচার করতে, ব্যবহার করুন ZonedDateTime।
তারিখ নির্ধারণে একটি সময় অঞ্চল গুরুত্বপূর্ণ। যে কোনও মুহুর্তের জন্য, তারিখটি অঞ্চল অনুসারে বিশ্ব জুড়ে পরিবর্তিত হয়। উদাহরণস্বরূপ, প্যারিসের মধ্যরাতের কয়েক মিনিটের পরে ফ্রান্স একটি নতুন দিন এবং মন্ট্রিয়াল কোয়েবেকের "গতকাল" এখনও রয়েছে ।
যদি কোনও সময় অঞ্চল নির্দিষ্ট না করা থাকে, JVM সুস্পষ্টভাবে তার বর্তমান ডিফল্ট সময় অঞ্চলটি প্রয়োগ করে। রানটাইম (!) এর সময় যে কোনও মুহুর্তে ডিফল্টটি পরিবর্তিত হতে পারে, সুতরাং আপনার ফলাফলগুলি পৃথক হতে পারে। আর্গুমেন্ট হিসাবে আপনার কাঙ্ক্ষিত / প্রত্যাশিত সময় অঞ্চলটি স্পষ্টভাবে উল্লেখ করা ভাল ।
একটি নির্দিষ্ট করুন সঠিক সময় অঞ্চল নাম এর বিন্যাসে continent/regionযেমন America/Montreal, Africa/Casablancaঅথবা Pacific/Auckland। কখনও যেমন 3-4 চিঠি সংক্ষেপ ব্যবহার ESTবা ISTহিসাবে তারা না সত্য সময় অঞ্চল, না মান, এবং এমনকি অনন্য নয় (!)।
ZoneId z = ZoneId.of( "America/Montreal" ) ;
ZonedDateTime zdt = ZonedDateTime.now( z ) ;
তারিখ-সময়ের টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টানতে।
int year = zdt.getYear() ;
int monthNumber = zdt.getMonthValue() ;
String monthName = zdt.getMonth().getDisplayName( TextStyle.FULL , Locale.JAPAN ) ; // Locale determines human language and cultural norms used in localizing. Note that `Locale` has *nothing* to do with time zone.
int dayOfMonth = zdt.getDayOfMonth() ;
String dayOfWeek = zdt.getDayOfWeek().getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;
int hour = zdt.getHour() ; // Extract the hour from the time-of-day.
int minute = zdt.getMinute() ;
int second = zdt.getSecond() ;
int nano = zdt.getNano() ;
Java.time ক্লাস সমাধান ন্যানোসেকেন্ড । আপনার প্রশ্নটি এক সেকেন্ডের ভগ্নাংশটি মিলি সেকেন্ডের জন্য জিজ্ঞাসা করেছিল । স্পষ্টতই, আপনি সম্ভাব্য ডেটা ক্ষতিতে ব্যয় করে ন্যানোসেকেন্ডগুলিকে মিলিসেকেন্ডে ছাঁটাই করতে দশ মিলিয়ন দিয়ে ভাগ করতে পারেন। অথবা এ TimeUnitজাতীয় রূপান্তরকরণের জন্য এনাম ব্যবহার করুন ।
long millis = TimeUnit.NANOSECONDS.toMillis( zdt.getNano() ) ;
DateTimeFormatterStringপাঠ্যের টুকরো একত্রিত করতে একটি উত্পাদন করতে, DateTimeFormatterশ্রেণিটি ব্যবহার করুন । এ সম্পর্কিত আরও তথ্যের জন্য অনুসন্ধান স্ট্যাক ওভারফ্লো।
Instantসাধারণত ইউটিসিতে মুহুর্তগুলি সন্ধান করা সেরা। একটি জোনেড তারিখ-সময় থেকে ইউটিসিতে সমন্বয় করতে, এটিকে বের করুন Instant।
Instant instant = zdt.toInstant() ;
এবং আবার ফিরে যান।
ZonedDateTime zdt = instant.atZone( ZoneId.of( "Africa/Tunis" ) ) ;
LocalDateTimeঅন্যান্য কয়েকটি উত্তর LocalDateTimeক্লাস ব্যবহার করে । প্রকৃত মুহুর্তগুলি, টাইমলাইনে নির্দিষ্ট মুহুর্তগুলি লক্ষ্য করার উদ্দেশ্যে সেই শ্রেণীর পক্ষে উপযুক্ত নয় কারণ এটি ইচ্ছাকৃতভাবে সময় অঞ্চল বা ইউটিসি-থেকে অফসেটের কোনও ধারণা নেই concept
তাহলে কি জন্য LocalDateTimeভাল? LocalDateTimeআপনি যখন কোনও নির্দিষ্ট লোকেশনের পরিবর্তে কোনও লোকেশন বা সমস্ত অঞ্চলে তারিখ ও সময় প্রয়োগ করার পরিকল্পনা করেন তখন ব্যবহার করুন ।
![]()
উদাহরণস্বরূপ, এই বছর ক্রিসমাস শুরু হয় LocalDateTime.parse( "2018-12-25T00:00:00" )। যতক্ষণ না আপনি একটি সময় অঞ্চল (ক ZoneId) প্রয়োগ করার জন্য এই মানটির কোনও অর্থ হয় না ZonedDateTime। ক্রিসমাস প্রথম কিরিবতীতে হয় , তারপরে নিউজিল্যান্ড এবং সুদূর পূর্ব এশিয়ায় হয়। কয়েক ঘন্টা পরে ভারতে ক্রিসমাস শুরু হয়। আরও ঘন্টা পরে আফ্রিকা ও ইউরোপে। এবং এখনও আমেরিকাতে ক্রিসমাস না কয়েক ঘন্টা পরে। যে কোনও এক জায়গায় শুরু হওয়া ক্রিসমাসের সাথে প্রতিনিধিত্ব করা উচিত ZonedDateTime। ক্রিসমাস সর্বত্র একটি সঙ্গে প্রতিনিধিত্ব করা হয় LocalDateTime।
Java.time ফ্রেমওয়ার্ক জাভা 8 এবং পরে পাতাটা করা হয়। এই ক্লাসগুলি , & , এর মতো সমস্যাযুক্ত পুরানো উত্তরাধিকারের তারিখ-সময়ের ক্লাসগুলিকে সহায়তা করে ।java.util.DateCalendarSimpleDateFormat
Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , মাইগ্রেশনে উপদেশ java.time ক্লাস।
আরও জানতে, ওরাকল টিউটোরিয়ালটি দেখুন । এবং অনেকগুলি উদাহরণ এবং ব্যাখ্যাগুলির জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করুন। স্পেসিফিকেশনটি জেএসআর 310 ।
আপনি আপনার ডাটাবেসের সাথে জাভা.টাইম অবজেক্টগুলি সরাসরি বিনিময় করতে পারেন । জেডিবিসি ৪.২ বা তারপরের সাথে অনুগত একটি জেডিবিসি ড্রাইভার ব্যবহার করুন । স্ট্রিংগুলির দরকার নেই, ক্লাসের প্রয়োজন নেই ।java.sql.*
জাভা.টাইম ক্লাস কোথায় পাবেন?
অথবা java.sql.Timestamp ব্যবহার করুন। ক্যালেন্ডার খুব ভারী, আমি এটি উত্পাদন কোড ব্যবহার করার বিরুদ্ধে সুপারিশ করব। জোদা আরও ভাল।
import java.sql.Timestamp;
public class DateTest {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(new Timestamp(System.currentTimeMillis()));
}
}
new Date()এখানে ব্যবহার করবেন । তবে অনুরোধ অনুসারে আপনি কীভাবে সহজেই এর থেকে পৃথক অংশ পাবেন?
java.sql.Timestampমাধ্যমে java.time.Instantপরিবেশন করা হয়েছিল।
জাভাতে 7 ক্যালেন্ডার এক লাইনে
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").format(Calendar.getInstance().getTime())
জাভা.ইটিল.ক্যালেন্ডার শ্রেণি এবং এর ডেরাইভেটিভগুলির জন্য API ডকুমেন্টেশন দেখুন (আপনি গ্রেগরিয়ানক্যালেন্ডার শ্রেণিতে বিশেষভাবে আগ্রহী হতে পারেন)।
java.util.Date, java.util.Calendarএবং java.text.SimpleDateFormatএখন উত্তরাধিকার দ্বারা supplanted java.time জাভা 8 এবং পরে পাতাটা ক্লাস। ওরাকল দ্বারা টিউটোরিয়াল দেখুন ।
ক্যালেন্ডার এখন = নতুন ক্যালেন্ডার () // বা নতুন গ্রেগরিয়ানক্যালেন্ডার (), বা যা প্রয়োজন আপনার স্বাদে
এখন.মনি এখন
প্রভৃতি
MONTHএবং উদাহরণ বৈশিষ্ট্য নয়, HOURস্থির ধ্রুবক হয় Calendar।