簡體   English   中英

從java.util.Date獲取Year

[英]get Year from java.util.Date

我在Cassandra列族中有一個日期列。 當我使用datastax java API從此CF檢索數據時,可以將此日期對象視為java.util.Date對象。

它有一個getYear()方法但不推薦使用。 相應的javadoc說:

從JDK 1.1版開始,由Calendar.get(Calendar.YEAR) - 1900取代。

如何正確獲取此日期對象的年,月,日屬性?

你能嘗試一下嗎?

      // create a calendar
      Calendar cal = Calendar.getInstance();
      cal.setTime(datetime);  //use java.util.Date object as arguement
      // get the value of all the calendar date fields.
      System.out.println("Calendar's Year: " + cal.get(Calendar.YEAR));
      System.out.println("Calendar's Month: " + cal.get(Calendar.MONTH));
      System.out.println("Calendar's Day: " + cal.get(Calendar.DATE));

正如javadocs中提到的那樣;

@Deprecated public int getYear()已過時。 從JDK版本1.1開始,由Calendar.get(Calendar.YEAR) - 1900取代。返回一個值,該值是從包含或以此Date對象表示的時刻開始的年份減去1900的結果,如當地時區。 返回:此日期表示的年份減去1900。

一個好的選擇是使用日期格式如下:

SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy");
Date             date = sdf1.parse(datetime);
String           year = sdf2.format(date);

在java8中使用LocalDate對象

Date date = new Date();
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
int year  = localDate.getYear();
int month = localDate.getMonthValue();
int day   = localDate.getDayOfMonth();

要檢索日期和時間字段,您可以使用以下代碼:

DateFormat.getDateTimeInstance().getCalendar().get(DateFormat.MONTH_FIELD)

只需用一個像“DAY_OF_WEEK_FIELD”這樣的其他東西替換MONTH_FIELD來檢索星期幾(我認為'1'代表星期一)或當前分鍾的“MINUTE_FIELD”等等:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM