2009-01-05 90 views
4

我想用YYYY-MM-DD格式讀取日期。Java日期格式?

但是,如果我輸入日期說例如2008-1-1,我想閱讀它作爲2008-01-01。

任何人都可以幫助我嗎?在此先感謝

回答

7

如果您需要使用內置的Java日期/時間處理,Adeel的解決方案沒問題,但是我個人寧願使用Joda Time。在格式方面,Joda Time的主要優點是格式化程序是無狀態的,因此您可以安全地在線程之間共享它。示例代碼:

DateTimeFormatter parser = DateTimeFormat.forPattern("YYYY-M-D"); 
DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-DD"); 

DateTime dt = parser.parseDateTime("2008-1-1"); 
String formatted = formatter.print(dt); // "2008-01-01" 
11

或者使用更好的Joda Time lib。

DateTime dt = new DateTime(); 
    System.out.println(dt.toString("yyyy-MM-dd")); 

    // The ISO standard format for date is 'yyyy-MM-dd' 
    DateTimeFormatter formatter = ISODateTimeFormat.date(); 
    System.out.println(dt.toString(formatter)); 
    System.out.println(formatter.print(dt)); 

日期和日曆API很糟糕。

3
import java.text.*; 

public class Test 
{ 

    public static void main(String args[]) 
    { 
     try 
     { 
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD"); 
      System.out.println(sdf.parse(args[0]).toString()); 
     } 
       catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 
} 

無論你寫作參數「2008-1-1」還是「2008-01-01」,這都可以。