3

この日付を解析する方法を教えてください: "29-July-2012"

私は試します:

new SimpleDateFormat("dd-MMM-yyyy");

しかし、うまくいきません。次の例外が発生します。

java.text.ParseException: Unparseable date: "29-July-2012"
4

5 に答える 5

5

ロケールについても言及する必要があります...

Date date = new SimpleDateFormat("dd-MMMM-yyyy", Locale.ENGLISH).parse(string);
于 2012-08-05T10:47:18.733 に答える
3

あなたの文字列では、完全な形式が月に使用されるため、http: //docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html によると、Baz のコメントで提案されているように MMMM を使用する必要があります.

この理由は、API ドキュメントから読み取ることができます。 http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html#monthは、月が 3 文字を超える場合はテキストとして解釈されることを示しており、 http://docs .oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html#textは、完全な形式(あなたの場合は「7月」ではなく「7月」)が4文字以上に使用されることを示しています。

于 2012-08-05T10:34:38.997 に答える
2

これを試してください(Locale.ENGLISHパラメーターと月の長い形式を追加しました)

package net.orique.stackoverflow.question11815659;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Locale;

public class Question11815659 {

    public static void main(String[] args) {

        try {
            SimpleDateFormat sdf = new SimpleDateFormat("dd-MMMM-yyyy",
                    Locale.ENGLISH);
            System.out.println(sdf.parse("29-July-2012"));
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}
于 2012-08-05T10:33:29.620 に答える
1

split()関数をデリミタで使用する "-"

String s = "29-July-2012";

String[] arr = s.split("-");

int day = Integer.parseInt(arr[0]);
String month = arr[1];
int year = Integer.parseInt(arr[2]);

// Now do whatever u want with the day, month an year values....
于 2012-08-05T10:57:23.890 に答える
0

StringTokenizer を作成します。最初にライブラリをインポートする必要があります:

import Java.util.StringTokenizer;

基本的に、区切り文字を作成する必要があります。これは、基本的にテキストを区切るためのものです。この場合、区切り記号は「-」(ダッシュ/マイナス) です。

注:テキストを引用符で囲んで解析したので、文字列であると想定しています。

例:

//Create string
String input = "29-July-2012";

//Create string tokenizer with specified delimeter
StringTokenizer st = new StringTokenizer(input, "-");

//Pull data in order from string using the tokenizer
String day = st.nextToken();
String month = st.nextToken();
String year = st.nextToken();

//Convert to int
int d = Integer.parseInt(day);
int m = Integer.parseInt(month);
int y = Integer.parseInt(year);

//Continue program execution
于 2012-08-05T10:34:14.870 に答える