বছর, মাস, দিন থেকে জাভা তারিখের অবজেক্ট তৈরি করা হচ্ছে


99
int day = Integer.parseInt(request.getParameter("day"));  // 25
int month = Integer.parseInt(request.getParameter("month")); // 12
int year = Integer.parseInt(request.getParameter("year")); // 1988

System.out.println(year);

Calendar c = Calendar.getInstance();
c.set(year, month, day, 0, 0);  

b.setDob(c.getTime());

System.out.println(b.getDob());  

আউটপুট হল:

1988
বুধ জানুয়ারী 25 00:00:08 IST 1989

আমি পাস করছি 25 12 1988কিন্তু আমি পেয়েছি 25 Jan 1989। কেন?


4
কোডে খ কী?
— রহস্যগুয়ে

উত্তর:


113

মাসগুলি ক্যালেন্ডারে শূন্য-ভিত্তিক। সুতরাং 12 ডিসেম্বর 1 মাস হিসাবে ব্যাখ্যা করা হয়। ব্যবহার

c.set(year, month - 1, day, 0, 0);  

4
আইবিএম এপিআই ডিজাইনার, জাভাস্ক্রিপ্ট এপিআই ডিজাইনার। তা ছাড়া, সম্ভবত কেউ নেই। নোট করুন যে ক্যালেন্ডারটি এখন জাভা 8 জাভা.টাইম এপিআই দ্বারা অচলিত রয়েছে, যা সঠিক কাজ করে।
— জেবি নিজেট

67

জাভা 8 এর আগে এটি আমার প্রিয় উপায়:

Date date = new GregorianCalendar(year, month - 1, day).getTime();

আমি বলব যে এটির চেয়ে ক্লিনার পদ্ধতি:

calendar.set(year, month - 1, day, 0, 0);

4
মাস Calendarধ্রুবক ব্যবহার করে নির্দিষ্ট করা যেতে পারে যেমন। Calendar.FEBRUARY।
— গীকারিস্ট

4
সতর্কতা অবলম্বন করুন, জাভা in-এ শূন্য থেকে মাস গণনা করা হত 7. ঝামেলা এড়াতে ধ্রুবকগুলি ব্যবহার করুন।
— jediz

করার একটি বিষয় - কল করার সময় দু'জন আলাদা ফলাফল দেয় getTime()। কনস্ট্রাক্টরে তথ্য নির্ধারণ দিনের শুরুতে সময় দেয় যেখানে উত্তরোত্তর হিসাবে বর্তমান সময় ব্যবহার করা হয়। দস্তাবেজগুলি দেখুন । সুতরাং লোকেরা আসলে যা করার চেষ্টা করছে তা ধরে নিয়ে সম্ভবত প্রথমটি একটি আরও ভাল পদ্ধতির।
— funct7

28

java.time

java.timeজাভা 8 মধ্যে নির্মিত ফ্রেমওয়ার্ক ব্যবহার করে

int year = 2015;
int month = 12;
int day = 22;
LocalDate.of(year, month, day); //2015-12-22
LocalDate.parse("2015-12-22"); //2015-12-22
//with custom formatter 
DateTimeFormatter.ofPattern formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
LocalDate.parse("22-12-2015", formatter); //2015-12-22

আপনার কাছে সময় তথ্য প্রয়োজন হলে (ঘন্টা, মিনিট, সেকেন্ড) থেকে কিছু রূপান্তর ব্যবহার LocalDateকরতেLocalDateTime

LocalDate.parse("2015-12-22").atStartOfDay() //2015-12-22T00:00

ভাল উত্তর, তবে জানা থাকলে একটি সময় অঞ্চল নির্দিষ্ট করুন। এ LocalDateএর কোনও টাইম জোন নেই এবং তাই টাইমলাইনে সঠিক মুহুর্তটি উপস্থাপন করা হয় না। যদি আপনার প্রসঙ্গটি কোনও সময় অঞ্চলকে নির্দেশ করে তবে একটি ZonedDateTimeবস্তুটি পেতে এটি প্রয়োগ করুন : LocalDate.parse("2015-12-22").atStartOfDay( ZoneId.of( "America/Montreal" ) )
— বেসিল বারউক

9

জাভার ক্যালেন্ডার উপস্থাপনা সেরা নয়, তারা জাভা ৮ এর জন্য এটিতে কাজ করছেন। আমি আপনাকে জোদা সময় ব্যবহার করার পরামর্শ দেব বা অন্য অনুরূপ গ্রন্থাগার।

জোডা টাইম লাইব্রেরি থেকে স্থানীয় তারিখ ব্যবহার করে এখানে একটি দ্রুত উদাহরণ দেওয়া হয়েছে:

LocalDate localDate = new LocalDate(year, month, day);
Date date = localDate.toDate();

এখানে আপনি একটি দ্রুত শুরু টিউটোরিয়াল অনুসরণ করতে পারেন।


6

জাভাডক দেখুন :

মাস - মান ক্যালেন্ডার ক্ষেত্র সেট করতে ব্যবহৃত মান। মাসের মান 0-ভিত্তিক। যেমন, 0 জানুয়ারীর জন্য।

সুতরাং, আপনার নির্ধারিত মাসটি পরের বছরের প্রথম মাস।


0

তারিখ, টাইমস্ট্যাম্প এবং সময়সীমার সাথে কাজ করার সময় আপনার জীবনকে সহজ করুন। থেকে হালডেটটাইম ব্যবহার করুন

http://sourceforge.net/projects/haldatetime/?source=directory

উদাহরণস্বরূপ আপনি আপনার ইনপুটটিকে এভাবে পার্স করার জন্য এটি ব্যবহার করতে পারেন:

HalDateTime mydate = HalDateTime.valueOf( "25.12.1988" );
System.out.println( mydate );   // will print in ISO format: 1988-12-25

পার্সিং এবং মুদ্রণের জন্য আপনি নিদর্শনগুলিও নির্দিষ্ট করতে পারেন।


4
দেখে মনে হচ্ছে আপনি নিজের লাইব্রেরি ক্লাস প্রচার করছেন? এটি সম্ভবত অনুমোদিত, তবে আপনি যদি এর প্রধান বিকাশকারী হন তবে যদি উল্লেখ করেন তবে এটি দেখতে সুন্দর লাগবে HalDateTime।
— ওলে ভিভি

ডাউনওয়েট করিনি। তবে তারিখের সাথে জীবন কখনও সহজ হয় না। আপনার লাইব্রেরি যে সত্য পরিবর্তন করবে না।
— কিলটেক 27'19

ডাউনভোট কেন? আমার লাইব্রেরিটি ২০১৩ সালের তারিখের সাথে জেএসআর 310 এ বর্ণিত সমস্ত কার্যকারিতা জাভা.টাইমে উপলভ্য যা আমি ব্যক্তিগতভাবে খুঁজে পাই সেরা ডিজাইনের এপিআইগুলির মধ্যে একটি। আমি সম্পূর্ণরূপে এটি ব্যবহার করার পরামর্শ দিচ্ছি।
— হাজো লেমকে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.