আমরা যখন জানব তখন কি মাসের নাম পাওয়ার জন্য কোনও অন্নেলাইনার রয়েছে?
int monthNumber = calendar.get(Calendar.MONTH)
বা সবচেয়ে সহজ উপায় কি?
আমরা যখন জানব তখন কি মাসের নাম পাওয়ার জন্য কোনও অন্নেলাইনার রয়েছে?
int monthNumber = calendar.get(Calendar.MONTH)
বা সবচেয়ে সহজ উপায় কি?
উত্তর:
আপনি এইভাবে পাবেন।
String getMonthForInt(int num) {
String month = "wrong";
DateFormatSymbols dfs = new DateFormatSymbols();
String[] months = dfs.getMonths();
if (num >= 0 && num <= 11 ) {
month = months[num];
}
return month;
}
আপনি সিম্পলডেটফর্ম্যাট ব্যবহার করে এটি অর্জন করতে পারবেন যা তারিখ এবং সময়গুলি বিন্যাস করার উদ্দেশ্যে।
Calendar cal = Calendar.getInstance();
System.out.println(new SimpleDateFormat("MMM").format(cal.getTime()));
এই হিসাবে সহজ
mCalendar = Calendar.getInstance();
String month = mCalendar.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.getDefault());
октября
পরিবর্তে পাবেন Октябрь
, যা আপনি সম্ভবত আশা করেন।
ক্লাস প্রকল্পের জন্য এটিই আমি সমাধান নিয়ে এসেছি:
public static String theMonth(int month){
String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
return monthNames[month];
}
আপনি যে নম্বরটি পাস করেছেন তা Calendar.MONTH
কল থেকে আসে ।
new SimpleDateFormat("MMMM").format(cal.getTime());
আপনার যদি একাধিক-ভাষা ইন্টারফেস থাকে, আপনি ভাষার প্রদর্শন নিয়ন্ত্রণের সাথে মাসের নাম প্রদর্শন করতে getDisplayName ব্যবহার করতে পারেন।
এখানে "সিরিয়া" এর মতো নির্দিষ্ট দেশে মাসের নাম ইংরাজী, ফ্রেঞ্চ, আরবিক এবং আরবিক প্রদর্শনের উদাহরণ রয়েছে:
Calendar c = Calendar.getInstance();
System.out.println(c.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.ENGLISH ) );
System.out.println(c.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.FRANCE ) );
System.out.println(c.getDisplayName(Calendar.MONTH, Calendar.LONG, new Locale("ar") ) );
System.out.println(c.getDisplayName(Calendar.MONTH, Calendar.LONG, new Locale("ar", "SY") ) );
System.out.println(c.getTime().toString());
ফলাফল হলো:
January
janvier
يناير
كانون الثاني
Sat Jan 17 19:31:30 EET 2015
SimpleDateFormat dateFormat = new SimpleDateFormat( "LLLL", Locale.getDefault() );
dateFormat.format( date );
কিছু ভাষার জন্য (যেমন রাশিয়ান) একা একা একা একা একা সঠিক মাসের নাম পাওয়ার সঠিক উপায়।
আপনি যদি জানুয়ারী getDisplayName
থেকে Calendar
বা এটি ব্যবহার করেন তবে এটিই আপনি পাবেন DateFormatSymbols
:
января (যা সম্পূর্ণ তারিখের স্ট্রিংয়ের জন্য সঠিক: " 10 января, 2014 ")
তবে একা একা মাসের নামটি আপনি আশা করতে পারেন:
январь
জোদা-সময় ব্যবহার সম্পর্কে কীভাবে । এটির সাথে কাজ করার জন্য এটি একটি আরও ভাল তারিখ-সময়ের API (এবং January
এখানে জানুয়ারীর অর্থ এটি ক্যালেন্ডারের মতো নয়, যা 0-based
কয়েক মাস ধরে সূচক ব্যবহার করে)।
AbstractDateTime#toString( pattern )
নির্দিষ্ট ফরম্যাটে তারিখটি ফর্ম্যাট করতে আপনি পদ্ধতিটি ব্যবহার করতে পারেন :
DateTime date = DateTime.now();
String month = date.toString("MMM");
আপনি যদি কোনও নির্দিষ্ট মাসের জন্য মাসের নাম চান তবে আপনি এটি এটি করতে পারেন:
int month = 3;
String monthName = DateTime.now().withMonthOfYear(month).toString("MMM");
উপরের পদ্ধতির মাসের নামের ভাষার জন্য আপনার জেভিএমের বর্তমান ডিফল্ট লোকাল ব্যবহার করে। পরিবর্তে আপনি একটি স্থানীয় আইটেম নির্দিষ্ট করতে চান।
String month = date.toString( "MMM", Locale.CANADA_FRENCH );
SimpleDateFormat
এবংDate
Month::getDisplayName
জাভা 8 থেকে, Month
এনাম ব্যবহার করুন । getDisplayName
পদ্ধতি স্বয়ংক্রিয়ভাবে মাসের নাম localizes।
পাস:
TextStyle
কত সময় বা সংক্ষিপ্ত রূপ নির্ধারণের জন্য একটি ।Locale
মানুষের অনুবাদ ব্যবহৃত ভাষা এবং সাংস্কৃতিক নিয়ম সংক্ষেপ, যতিচিহ্ন, ইত্যাদি জন্য ব্যবহৃত নির্দিষ্ট করতেউদাহরণ:
public static String getMonthStandaloneName(Month month) {
return month.getDisplayName(
TextStyle.FULL_STANDALONE,
Locale.getDefault()
);
}
এটি একটি পুরানো প্রশ্ন হতে পারে, তবে আমরা যখন সূচকগুলি জানি তখন মাসের নাম জানতে একটি লাইনার হিসাবে
String month = new DateFormatSymbols().getMonths()[monthNumber - 1];
বা সংক্ষিপ্ত নামের জন্য
String month = new DateFormatSymbols().getShortMonths()[monthNumber - 1];
দয়া করে সচেতন হন যে আপনার monthNumber
1 থেকে গণনা শুরু হয় যখন উপরের যে কোনও পদ্ধতিতে অ্যারে দেয় তাই আপনাকে 0 থেকে গণনা শুরু করতে হবে।
এই কোডটির ভাষা সমর্থন রয়েছে। আমি এগুলি অ্যান্ড্রয়েড অ্যাপে ব্যবহার করেছি।
String[] mons = new DateFormatSymbols().getShortMonths();//Jan,Feb,Mar,...
String[] months = new DateFormatSymbols().getMonths();//January,Februaty,March,...
আমি এটিকে অনেক সহজ পেয়েছি ( https://docs.oracle.com/javase/tutorial/datetime/iso/enum.html )
private void getCalendarMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
Month month = Month.of(calendar.get(Calendar.MONTH));
Locale locale = Locale.getDefault();
System.out.println(month.getDisplayName(TextStyle.FULL, locale));
System.out.println(month.getDisplayName(TextStyle.NARROW, locale));
System.out.println(month.getDisplayName(TextStyle.SHORT, locale));
}
Month
এর সূচীটি জানুয়ারী = 1 দিয়ে শুরু হয় না , যেখানে ক্যালেন্ডারটি জানুয়ারী = 0 দিয়ে শুরু হয়? Month.of(calendar.get(Calendar.MONTH));
জানুয়ারির ক্ষেত্রে ব্যর্থ হবে না ?
একমুখী:
আমরা আশা করি আপনি Month
জাভা এপিআই ( java.time.Month
)। আমরা ব্যবহার করে পেতে পারিMonth.of(month);
এখানে, Month
সংখ্যাগুলি হিসাবে তালিকাবদ্ধ করা হয় যাতে হয় আপনি Month.JANUARY
উপরের API তে যেমন 1, 2, 3, 4 সরবরাহ করতে পারেন বা সরবরাহ করতে পারেন ।
দ্বিতীয় উপায়:
ZonedDateTime.now().getMonth();
এটি পাওয়া যায় java.time.ZonedDateTime
।
আমি এই বিষয়ে প্রতিক্রিয়াগুলির উপর ভিত্তি করে এবং একটি স্থানীয় প্রতিক্রিয়া পাবার জন্য ডেটফর্ম্যাট সিম্বলস উত্তরগুলি ব্যবহার করে একটি কোটলিন এক্সটেনশন তৈরি করেছি।
fun Date.toCalendar(): Calendar {
val calendar = Calendar.getInstance()
calendar.time = this
return calendar
}
fun Date.getMonthName(): String {
val month = toCalendar()[Calendar.MONTH]
val dfs = DateFormatSymbols()
val months = dfs.months
return months[month]
}
এটি আমার পক্ষে কাজ করেছে
import java.text.SimpleDateFormat;
import java.util.Calendar;
Calendar cal = Calendar.getInstance();
String currentdate=new SimpleDateFormat("dd-MMM").format(cal.getTime());
DateFormat date = new SimpleDateFormat("dd/MMM/yyyy");
Date date1 = new Date();
System.out.println(date.format(date1));
এটি মাসের ইংরেজি নাম ফেরত দেয়। 04 এপ্রিল এবং অন্যান্য প্রদান করে।
String englishMonth (int month){
return Month.of(month);
}
Month
বা toString
ফলাফলটি ফেরত দেওয়ার আগে প্রয়োগ করতে হবে।
সিম্পলডেটফরম্যাট জাভা ডক থেকে:
* <td><code>"yyyyy.MMMMM.dd GGG hh:mm aaa"</code>
* <td><code>02001.July.04 AD 12:08 PM</code>
* <td><code>"EEE, d MMM yyyy HH:mm:ss Z"</code>
* <td><code>Wed, 4 Jul 2001 12:08:56 -0700</code>