[英]Get date from calendar
大家好,我收到的日期是:2015-01-18
這是一個日歷對象,我需要從該對象獲取日,月和年。 現在我做類似的事情:
int day = date.get(Calendar.DAY_OF_MONTH);
int month = date.get(Calender.MONTH + 1);
int year = date.get(Calender.Year);
輸出為:
day = 18
month = 1
year = 2015
我的問題是,在這種情況下,我想獲取月份,例如01而不是1,因為該值稍后會在我的代碼中解析,並且需要采用該格式。 將0附加在1之前是丑陋的,以便任何人都知道的代碼提供了一種更好的方法嗎? 謝謝
如果您需要將數據傳遞為“ 01”,則int
是錯誤的數據類型。 您需要將其作為String
傳遞。 您可以使用SimpleDateFormat
格式化日期。 這樣,您可以選擇要從日期和格式中選擇的元素。 例:
final Calendar calendar = Calendar.getInstance();
final Date date = calendar.getTime();
String day = new SimpleDateFormat("dd").format(date); // always 2 digits
String month = new SimpleDateFormat("MM").format(date); // always 2 digits
String year = new SimpleDateFormat("yyyy").format(date); // 4 digit year
您也可以像這樣格式化完整日期:
String full = new SimpleDateFormat("yyyy-MM-dd").format(date); // e.g. 2015-01-18
用於SimpleDateFormat的JavaDoc完整說明了各種格式設置選項。 請注意, SimpleDateFormat
不是線程安全的。
你需要
int month = cal.get(Calender.MONTH) + 1; // 0..11 -> 1..12
獲取月份的int(+必須在參數之外)。
如果您需要一個從該整數開始以零開頭的字符串,則可以使用textformat:
System.out.printf("month=%02d%n", month);
String monthStr = String.format("%02d", month);
但是,實際上您不必通過int進行路由,您可以將Date
一部分直接格式化為字符串:
monthStr = new SimpleDateFormat("MM", Locale.ENGLISH).format(cal.getTime());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.