আপনি ঘন্টা এবং মিনিট পেতে পারি যেহেতু Date.getHours
এবং Date.getMinutes
অবচিত হয়? গুগল অনুসন্ধানে আমি যে উদাহরণগুলি পেয়েছি সেগুলি অবহেলা পদ্ধতি ব্যবহার করে।
আপনি ঘন্টা এবং মিনিট পেতে পারি যেহেতু Date.getHours
এবং Date.getMinutes
অবচিত হয়? গুগল অনুসন্ধানে আমি যে উদাহরণগুলি পেয়েছি সেগুলি অবহেলা পদ্ধতি ব্যবহার করে।
উত্তর:
স্ট্যান্ডার্ড java.util.Date ক্লাসের পরিবর্তে জোডা টাইম ব্যবহার করার চেষ্টা করুন । জোডা টাইম লাইব্রেরিতে তারিখগুলি পরিচালনা করার জন্য আরও ভাল API রয়েছে।
DateTime dt = new DateTime(); // current time
int month = dt.getMonth(); // gets the current month
int hours = dt.getHourOfDay(); // gets hour of day
জোদা টাইম লাইব্রেরিটি ব্যবহারের পক্ষে এবং বিবেকের জন্য এই প্রশ্নটি দেখুন ।
জোদা সময়টিকে জাভাটির কিছু ভবিষ্যতের সংস্করণকে স্ট্যান্ডার্ড উপাদান হিসাবে অন্তর্ভুক্ত করা যেতে পারে, জেএসআর -310 দেখুন ।
আপনার যদি অবশ্যই traditionalতিহ্যবাহী java.util.Date এবং java.util.Cocolate ক্লাস ব্যবহার করা থাকে তবে তাদের জাভাডোক সাহায্যের জন্য দেখুন ( java.util.Clavender এবং java.util.Date )।
আপনি প্রদত্ত তারিখের উদাহরণ থেকে ক্ষেত্রগুলি আনতে এই জাতীয় traditionalতিহ্যগত ক্লাসগুলি ব্যবহার করতে পারেন।
Date date = new Date(); // given date
Calendar calendar = GregorianCalendar.getInstance(); // creates a new calendar instance
calendar.setTime(date); // assigns calendar to given date
calendar.get(Calendar.HOUR_OF_DAY); // gets hour in 24h format
calendar.get(Calendar.HOUR); // gets hour in 12h format
calendar.get(Calendar.MONTH); // gets month number, NOTE this is zero based!
জাভাদোক থেকে তারিখের জন্য
As of JDK version 1.1, replaced by Calendar.get(Calendar.HOUR_OF_DAY)
সুতরাং ব্যবহার
Calendar rightNow = Calendar.getInstance();
int hour = rightNow.get(Calendar.HOUR_OF_DAY);
এবং getMinutes এর সমতুল্য।
ZonedDateTime
পরিবর্তে ব্যবহার করুন।
আমি জোদা-সময়ের অনুরাগী থাকা অবস্থায় , জাভা 8 জাভা.টাইম প্যাকেজটি উপস্থাপন করে যা অবশেষে একটি উপযুক্ত জাভা স্ট্যান্ডার্ড সমাধান! এই নিবন্ধটি পড়ুন, জাভা এসই 8 তারিখ এবং সময় , জাভা.টাইম উপর ঘন্টা এবং মিনিটের বাইরে প্রচুর পরিমাণে তথ্যের জন্য।
বিশেষত, LocalDateTime
ক্লাসটি দেখুন।
ঘন্টা এবং মিনিট:
LocalDateTime.now().getHour();
LocalDateTime.now().getMinute();
LocalDateTime.now(ZoneId.of("Asia/Manilla"))
। now()
ধারাবাহিকতার জন্য কেবল একবার পড়ুন (দুটি কলের মধ্যে সময় কেটে যাবে)। তারিখটি যদি সত্যিই অপ্রাসঙ্গিক হয় তবে LocalTime
খুব কার্যকর হয়।
ZonedDateTime
বরং ক্লাস ব্যবহার করুন LocalDateTime
। সঙ্গে LocalDateTime
আপনি কোন কারণে মূল্যবান সময় জোন তথ্য খারিজ করা হয়, কিছুই অর্জন করে।
ZonedDateTime.now().getHour()
… বা…
LocalTime.now().getHour()
ZonedDateTime
জেডি দ্বারা উত্তর ভাল কিন্তু অনুকূল নয়। উত্তরটি LocalDateTime
ক্লাস ব্যবহার করে । টাইম জোন বা অফসেট-ইউটিসি -র কোনও ধারণার অভাব, সেই শ্রেণি একটি মুহুর্তের প্রতিনিধিত্ব করতে পারে না।
ব্যবহার করা ভাল ZonedDateTime
।
ZoneId z = ZoneID.of( "America/Montreal" ) ;
ZonedDateTime zdt = ZonedDateTime.now( z ) ;
আপনি যদি ZoneId
যুক্তিটি বাদ দেন তবে জেভিএমের বর্তমান ডিফল্ট সময় অঞ্চল ব্যবহার করে রানটাইম এ স্পষ্টভাবে প্রয়োগ করা হয়।
আমার স্নাতকের:
ZonedDateTime.now()
… এর মতোই:
ZonedDateTime.now( ZoneId.systemDefault() )
আপনার কাঙ্ক্ষিত / প্রত্যাশিত সময় অঞ্চলটি পাস করে সুস্পষ্ট হওয়া আরও ভাল। ডিফল্ট রানটাইমের সময় যে কোনও মুহুর্তে পরিবর্তন করতে পারে ।
যদি সমালোচনা হয় তবে ব্যবহারকারীর সাথে সময় অঞ্চলটি নিশ্চিত করুন।
ZonedDateTime
ঘন্টা এবং মিনিটের জন্য জিজ্ঞাসা করুন ।
int hour = zdt.getHour() ;
int minute = zdt.getMinute() ;
LocalTime
আপনি যদি সময় অঞ্চল ব্যতীত দিনের সময়সীমা চান তবে এক্সট্রাক্ট করুন LocalTime
।
LocalTime lt = zdt.toLocalTime() ;
বা ZonedDateTime
সরাসরি এড়ানো, সরাসরি যেতে LocalTime
।
LocalTime lt = LocalTime.now( z ) ; // Capture the current time-of-day as seen in the wall-clock time used by the people of a particular region (a time zone).
Java.time ফ্রেমওয়ার্ক জাভা 8 এবং পরে পাতাটা করা হয়। এই ক্লাসগুলি , & , এর মতো সমস্যাযুক্ত পুরানো উত্তরাধিকারের তারিখ-সময়ের ক্লাসগুলিকে সহায়তা করে ।java.util.Date
Calendar
SimpleDateFormat
আরও জানতে, ওরাকল টিউটোরিয়ালটি দেখুন । এবং অনেক উদাহরণ এবং ব্যাখ্যার জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করুন। স্পেসিফিকেশনটি জেএসআর 310 ।
Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , মাইগ্রেশনে উপদেশ java.time ক্লাস।
আপনি আপনার ডাটাবেসের সাথে জাভা.টাইম অবজেক্টগুলি সরাসরি বিনিময় করতে পারেন । জেডিবিসি ৪.২ বা তারপরের সাথে অনুগত একটি জেডিবিসি ড্রাইভার ব্যবহার করুন । স্ট্রিংগুলির দরকার নেই, ক্লাসের প্রয়োজন নেই ।java.sql.*
জাভা.টাইম ক্লাস কোথায় পাবেন?
ThreeTen-অতিরিক্ত প্রকল্প অতিরিক্ত শ্রেণীর সাথে java.time প্রসারিত করে। এই প্রকল্পটি জাভা.টাইমে সম্ভাব্য ভবিষ্যতের সংযোজনগুলির একটি প্রমাণযোগ্য ক্ষেত্র। আপনি এখানে কিছু দরকারী শ্রেণীর যেমন খুঁজে পেতে পারেন Interval
, YearWeek
, YearQuarter
, এবং আরো ।
ক্যালেন্ডার চেষ্টা করুন। ক্যালেন্ডার-অবজেক্ট পেতে getInstance ব্যবহার করুন। তারপরে প্রয়োজনীয় তারিখ সেট করতে সেটটাইম ব্যবহার করুন। আপনার প্রয়োজনীয় মানগুলি পড়তে এখন আপনি যথাযথ ধ্রুবক সহ HOUR_OF_DAY বা তার সাথে get (int ফিল্ড) ব্যবহার করতে পারেন।
http://java.sun.com/javase/6/docs/api/java/util/Calendar.html
int hr=Time.valueOf(LocalTime.now()).getHours();
int minutes=Time.valueOf(LocalTime.now()).getMinutes();
এই ফাংশনগুলি ঘন্টা এবং মিনিটের মধ্যে অন্তর্গত মানগুলি ফিরিয়ে দেবে।
java.sql.Time
? নিশ্চয়ই কোনও কারণ নেই যে আপনি যখন পেয়ে গেছেন সেই পুরানো শ্রেণিকে খেলতে আনতে java.time.LocalTime
। আপনি অত্যধিক জটিল।
getMinutes()
Calendar.get(Calendar.MINUTE)
মিনিট এবং ঘন্টা পাওয়ার আরও একটি উপায় হ'ল সিম্পলডেট ফরমেট ব্যবহার করে।
SimpleDateFormat formatMinutes = new SimpleDateFormat("mm")
String getMinutes = formatMinutes.format(new Date())
SimpleDateFormat formatHours = new SimpleDateFormat("HH")
String getHours = formatHours.format(new Date())
java.util.Date
, java.util.Calendar
এবং java.text.SimpleDateFormat
এখন উত্তরাধিকার দ্বারা supplanted java.time জাভা 8 এবং পরে পাতাটা ক্লাস। ওরাকল দ্বারা টিউটোরিয়াল দেখুন ।
আমি বিজ্ঞাপন জোডা সময় দেখার পরামর্শ দিচ্ছি। http://www.joda.org/joda-time/
আমি আমার ঘন প্রকল্পে অন্য একটি গ্রন্থাগার যুক্ত করতে ভয় পেয়েছিলাম, তবে এটি কেবল সহজ এবং দ্রুত এবং স্মার্ট এবং দুর্দান্ত। এছাড়াও এটি বিদ্যমান কোডের সাথে কিছুটা হলেও দুর্দান্ত খেলে।
যদিও আমি এটি করার পরামর্শ দিচ্ছি না, আমি মনে করি এটি উল্লেখ করা মূল্যবান যে জাভা.ইটি.এল.ডেটের অনেকগুলি পদ্ধতি অবহেলা করা হলেও তারা এখনও কাজ করে। তুচ্ছ পরিস্থিতিতে, এগুলি ব্যবহার করা ঠিক হবে। এছাড়াও, java.util.C ক্যালেন্ডারটি বেশ ধীর গতির, তাই getMonth এবং getear এয়ারটি কার্যকরভাবে দ্রুত হতে পারে।
import java.util.*
আপনি ক্যালেন্ডার এবং ফর্ম্যাটার ক্লাস ব্যবহার করে গেথর এবং মিনিট করতে পারেন। Calendar cal = Calendar.getInstance()
এবং Formatter fmt=new Formatter()
ডিসপ্লে ঘন্টা এবং মিনিট fmt.format("%tl:%M",cal,cal)
এবং প্রিন্ট System.out.println(fmt)
আউটপুট শোয়ের জন্য একটি ফর্ম্যাট সেট করে10:12
java.util.Date
,java.util.Calendar
এবংjava.text.SimpleDateFormat
এখন উত্তরাধিকার দ্বারা supplanted java.time জাভা 8 এবং পরে পাতাটা ক্লাস। ওরাকল দ্বারা টিউটোরিয়াল দেখুন ।