2

日付文字列は「02-SEP-2012」です。2012年8月2日フォーマットに変換したい。

String deliverydate="02-SEP-2012";
SimpleDateFormat sdf=new SimpleDateFormat("MM/dd/yyyy");

Date date=sdf.parse(deliveryDate);

これは私に与えます

java.text.ParseException: Unparseable date: "01-Sep-2012"

これを解析する方法は?この日付をMSSQLに挿入したいと思います。

4

6 に答える 6

5

2018 / Java 10

String deliverydate="02-SEP-2012";
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
                .parseCaseInsensitive()
                .appendPattern("dd-MMM-yyyy")
                .toFormatter(Locale.UK);
LocalDate ld = LocalDate.parse(deliverydate, formatter);
System.out.println(ld);

元の回答

02-SEP-20122つの文字列を見てくださいMM/dd/yyyy。これらは同じ形式ではありません。

日付パーサーは、文字列がフォーマッターと同じ形式であることを期待しています

String deliverydate="02-SEP-2012";
SimpleDateFormat sdf=new SimpleDateFormat("dd-MMM-yyyy");

Date date=sdf.parse(deliveryDate);

sdf=new SimpleDateFormat("MM/dd/yyyy");
System.out.println(sdf.format(date));
于 2012-08-30T11:18:17.833 に答える
2

次を使用する必要があります。

SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy");
Date date = sdf.parse(deliveryDate);

次に、再フォーマットします。

sdf.applyPattern("MM/dd/yyyy");
System.out.println(sdf.format(date));
于 2012-08-30T11:16:07.443 に答える
1

SQLサーバーの場合:

convert()関数を使用できます。

あなたが試すことができます

Insert into <table> (date_col,<othercolumns>)
select CONVERT(date,'02-SEP-2012'),<othercolumns>

例:

declare @date varchar(20) ='02-SEP-2012'
select CONVERT(date,@date)

結果:

2012-09-02
于 2012-08-30T11:17:03.760 に答える
0

変更SimpleDateFormat

SimpleDateFormat sdf=new SimpleDateFormat("dd-MMM-yyyy");
于 2012-08-30T11:17:15.300 に答える
0
String deliverydate="02-SEP-2012";
SimpleDateFormat sdf=new SimpleDateFormat("MM-dd-yyyy");
Date date=sdf.parse(deliveryDate);

「/」の代わりにこの「-」を試しましたか。

于 2012-08-30T11:18:24.910 に答える
0

parse(String source)メソッドを使用すると、指定された日付が有効な形式でない場合にjava.text.ParseException例外がスローされる可能性があるため、有効な形式を使用する必要があります。

于 2012-08-30T11:38:33.937 に答える