問題タブ [simpledateformat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JavaでDateFormatを使用して月の完全な形式の文字列を解析する方法は?
私はこれを試しました:
エラー:
Exception in thread "main" java.text.ParseException: Unparseable date: "June 27, 2007"
Javaのドキュメントによると、完全なフォームに一致させるには4文字を使用する必要があります。MMMは、 「6月」のように短縮された月でしか使用できませんが、完全な形式に一致させる必要があります。
テキスト:フォーマットの場合、パターン文字の数が4以上の場合、完全な形式が使用されます。それ以外の場合は、可能な場合は短縮形または省略形が使用されます。構文解析では、パターン文字の数に関係なく、両方の形式が受け入れられます。
https://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
java - 正しくない日付を返すJavaDateFormatおよびSimpleDateFormat
今日は2010年2月9日火曜日ですが、日付を印刷すると間違った日付になります。
印刷行の結果は次のようになります。「今日はSatJan09 00:00:00CST2010」
間違いなく2009年1月の土曜日ではなく、2009年2月の火曜日です。私は何か間違ったことをしていると思います。誰かがここで何が悪いのか教えてもらえますか?曜日を手動で設定する必要がありますか?
更新注:
時間、分、秒、ミリ秒をに初期化する必要があるため、今日はで初期化したくありません。これは、ユーザー入力の日付を今日と比較できるようにするために必要です。ユーザーが今日の日付を入力し、フォーマッターを使用してDateオブジェクトを作成する場合、今日をで初期化して2つの日付を比較すると、今日はユーザーの後になります。選択した日付(これは正しくありません)。したがって、今日、hr / min / sec/msなしで1日の始めに初期化する必要があります。new Date()0new Date()
datetime - Groovy Sql と SimpleDateFormat のヘルプ
私のデータベースでは、列の型が datetime です。
列データ例:2009-02-03 19:04:23.0
:SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");を使用して日付形式を定義しています。
私は groovySQL を使用してテーブルを読み取り、行ごとに新しい SampleJ オブジェクトを追加しています (新しいテーブル - SampleJ にマップされています)。
ここで私の閉鎖:
一時テーブル「SampleJ」を確認すると、すべての日付が「${it.date_created}」と一致しません。
すべての日付は「new Date()」に設定されます (クロージャの実行時間まで)。
デバッガー経由:
"${it.date_created}" は "Tue Feb 03 19:04:23 CST 2009" として定義され、(2009-02-03 19:04:23.0) に対応します。私はこの日付を持っている必要があります !
この問題を解決するにはどうすればよいですか? エラーはありません。日付が間違っているだけです。
SampleJ で日付を定義する簡単な方法はありますか?
addSample.dateCreated = dateFormat.parse("${it.date_created}") に代わるものはありますか?
java - TimeZoneとSimpleDateFormatを使用した日付の解析/フォーマットでは、DSTスイッチに関して異なる結果が得られます
GoogleとStackOverflowでTimeZoneとSimpleDateFormatに関する複数の投稿を行いましたが、それでも間違っていることがわかりません。私はいくつかのレガシーコードに取り組んでおり、間違った結果を与えるメソッドparseDateがあります。
使用しようとしているサンプルJUnitを添付して、問題を調査します。
最初のメソッド(testParseStrangeDate_IBM_IBM)は、IBMの実装を使用して、parseDateメソッドの出力をフォーマットします。Sunの実装で出力される2番目のフォーマット。
SunのSimpleDateFormatを使用すると、1時間異なる時間が得られます(これは夏時間に関連している可能性があります)。デフォルトのTimeZoneをIBMの実装に設定すると、parseDateメソッドが修正されます(setupDefaultTZメソッドの3行のコメントを解除するだけです)。
バグではないと思いますが、何か間違ったことをしています。
java - SimpleDateFormat が jdk1.4 で間違った日付を返す
これにより、jdk1.4 で "2500-01-01 00:00:00" が返されますが、これは正しくなく、jdk1.5 では null を返します。
jdk1.4で「2500-01-01 00:00:00」と表示されるのはなぜですか? 日付を解析できない場合、デフォルトでこの日付になりますか?
アップデート:
20110731 を使用すると機能することはわかっています...しかし、07312011 を渡すと、1.4 ではランダムな日付が返され、1.5 では null が返されます。
1.4 で、渡された日付がフォーマットに対応していない場合、デフォルトは 2500-01-01 になりますか?
1.5 で null を返すのはなぜですか?
java - Java SimpleDateFormat と compareTo
SimpleDateFormat クラスと java.util.Date の compareto メソッドについて質問があります。
Date オブジェクトを作成してからフォーマットし、最後にフォーマットされた文字列を解析して元の日付と比較します。
結果:
元の日付:Mon Jan 25 15:43:23 CET 2010 Formatted date: 2010.jan.25 03:43:23 868 originalDate compareTo parsedDate: 1
常に「1」になるのはなぜですか? 元の日付が解析された日付よりも大きいのはなぜですか?
java - SimpleDateFormat パターン文字列でのアルファベット文字の使用
SimpleDateFormat パターン文字列にアルファベット文字を含めることは可能ですか?
たとえば、時間の前に文字「T」が含まれるフォーマット文字列を作成しようとしています。
2003-11-15 T 09:30:47-05:00。
現在yyyy-MM-ddhh:mm:ssZ、パターン文字列として使用しています。
に変更するとyyyy-MM-ddThh:mm:ssZ、「A」から「Z」および「a」から「z」が予約されているため、例外がスローされます。
2 つの DateFormats を使用しないソリューションはありますか?
java - Java SimpleDateFormat()。parse()が奇妙なフォーマットを出力するのはなぜですか?
私の入力は次のように文字列形式です。
私のコードは次のとおりです。
出力は次のとおりです。
その日(太陽)がどこから来たのかわかりませんか?または(AST)?なぜ日付が間違っているのですか?元の文字列の日付と同じ形式を維持し、それをDateオブジェクトにしたかっただけです。
Netbeans6.8Macバージョンを使用しています。
java - 「Z」リテラルで日付を解析するSimpleDateFormat
次のような日付を解析しようとしています。
2010-04-05T17:16:00Z
これはhttp://www.ietf.org/rfc/rfc3339.txtによる有効な日付です。'Z' リテラル (引用符) "は、UTC が指定された時間の優先基準点であることを意味します。 "
SimpleDateFormat とこのパターンを使用して解析しようとすると:
Mon Apr 05 17:16:00 EDT 2010 として解析されます。
SimpleDateFormat次のパターンの文字列を解析できません:
で使用するTimeZoneを明示的に設定してSimpleDateFormat、期待される出力を得ることができますが、それは必要ではないと思います。足りないものはありますか?代替の日付パーサーはありますか?
java - 日付文字列を java.util.Date に解析するときの不正なパターン文字 'T'
私は日付文字列を持っていて、Java Date APIを使用して通常の日付に解析したいのですが、私のコードは次のとおりです:
ただし、例外があります。java.lang.IllegalArgumentException: Illegal pattern character 'T'
文字列を分割して手動で解析する必要があるのでしょうか。
ところで、T の両側に一重引用符を追加しようとしました。
また、機能しません。