まず、おかげで、エルダーDeveloperで、私はスーパー初心者だ...と残念私はよく英語を話す.... ..だから私の文を理解していない...文字列の形式が入力値の形式と同じかどうかをどのように知ることができますか? Javaの
私が欲しいですaの形式をDateStringFormatと比較する方法を知ることができます。
例:
boolean CompareFormat(String inputValue, DateTimeFormatter format) {
String gettedFormat = ~~~.getFormat(inputValue);
if (format.toString().equals(gettedFormat)) return true;
else return false;
}
それはちょうど、私が思うに...
- は、フォーマットされた入力文字列の値を取得しています。
- をフォーマットする値を書式設定の変更は、(私は考えて、それが /inputValueでは変更されません再フォーマットへ値の変更を変更:19900202T0001 - >変更形式に(yyyyMMddThhmm) - >結果:19900202T0001)
- inputValueでは同じである場合値をフォーマットに変更してからtrueを返します。 else false;
私は思った結果を得ることができません。
私は
System.out.println("format : " + format);
System.out.println("value : "+value);
LocalDate changedDateString = LocalDate.parse(value, formatter);
System.out.println("changed Value : " + changedDateString);
System.out.println("changed Value : " + formatter.format(changedDateString));
出力しようとした:
format : yyyyMMdd'T'hhmm
value : 20170616T0023
changed Value : 2017-06-16
18:19:14.053 ERROR ServiceTask - Exception caught.
フォーマット文字列 'yyyyMMdd'T'hhmm'とタイプ「LocalDate」の間に不一致があります。 'LocalDate'は日付のみであり、時刻(時と分)は含まれません。したがって、代わりに 'LocalDateTime'を使うか、フォーマットパターン文字列から' HHmm'を除外してください。ところで、0〜23の間の時間は、おそらく大文字の「HH」になるはずです。 –
可能なフォーマットの数は限られていますが、適切なフォーマッタを使用することができます。すべての可能なフォーマットを認識して処理することはできません。古典的な例は11/06/2017です:あるものは11月6日を意味し、他のものは6月11日を意味します。 –
@Ole V.V.ああ...ありがとう。私はあなたが言ったことを理解する。私は他の方法で解決しました。ありがとうございました。 – Jays