web-dev-qa-db-ja.com

Java文字列をDateオブジェクトに変換する方法

私はひもがあります

String startDate = "06/27/2007";

今私はDateオブジェクトを取得する必要があります。 My DateObjectはstartDateと同じ値にする必要があります。

私はこうやっています

DateFormat df = new SimpleDateFormat("mm/dd/yyyy");
Date startDate = df.parse(startDate);

しかし、出力はフォーマットです

Jan 27 00:06:00 PST 2007.

132
user755043

基本的には文字列形式の日付を日付オブジェクトに効率的に変換します。その時点で印刷すると、標準の日付フォーマット出力が得られます。その後フォーマットするには、それを指定されたフォーマット(すでに指定済み)のdateオブジェクトに変換し直す必要があります。

String startDateString = "06/27/2007";
DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); 
Date startDate;
try {
    startDate = df.parse(startDateString);
    String newDateString = df.format(startDate);
    System.out.println(newDateString);
} catch (ParseException e) {
    e.printStackTrace();
}
181
citizen conn

「mm」は日付の「分」の部分を意味します。 「月」の部分には「MM」を使用してください。

そのため、コードを次のように変更してみてください。

DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); 
Date startDate = df.parse(startDateString);

編集:DateFormatオブジェクトには、フォーマットを考慮せずに日付のみを含むDateオブジェクトではなく、日付フォーマット定義が含まれています。フォーマットについて話すとき、我々は特定のフォーマットで日付の文字列表現を作成することについて話しています。この例を参照してください。

    import Java.text.DateFormat;
    import Java.text.SimpleDateFormat;
    import Java.util.Date;

    public class DateTest {

        public static void main(String[] args) throws Exception {
            String startDateString = "06/27/2007";

            // This object can interpret strings representing dates in the format MM/dd/yyyy
            DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); 

            // Convert from String to Date
            Date startDate = df.parse(startDateString);

            // Print the date, with the default formatting. 
            // Here, the important thing to note is that the parts of the date 
            // were correctly interpreted, such as day, month, year etc.
            System.out.println("Date, with the default formatting: " + startDate);

            // Once converted to a Date object, you can convert 
            // back to a String using any desired format.
            String startDateString1 = df.format(startDate);
            System.out.println("Date in format MM/dd/yyyy: " + startDateString1);

            // Converting to String again, using an alternative format
            DateFormat df2 = new SimpleDateFormat("dd/MM/yyyy"); 
            String startDateString2 = df2.format(startDate);
            System.out.println("Date in format dd/MM/yyyy: " + startDateString2);
        }
    }

出力:

Date, with the default formatting: Wed Jun 27 00:00:00 BRT 2007
Date in format MM/dd/yyyy: 06/27/2007
Date in format dd/MM/yyyy: 27/06/2007
20
sother
    try 
    {  
      String datestr="06/27/2007";
      DateFormat formatter; 
      Date date; 
      formatter = new SimpleDateFormat("MM/dd/yyyy");
      date = (Date)formatter.parse(datestr);  
    } 
    catch (Exception e)
    {}

月はMM、分はmmです。

9
mihsathe

簡潔なバージョン:

String dateStr = "06/27/2007";
DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
Date startDate = (Date)formatter.parse(dateStr);  

フォーマットが有効な日付であることを確認するために、ParseExceptionのtry/catchブロックを追加してください。

5
readikus