問題タブ [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 - 日付を解析する方法は?
この日付を解析しようとしていますがSimpleDateFormat
、機能していません:
このコードを strDate="2008-10-14"
で試すと、肯定的な答えが得られます。どうしたの?この形式を解析するにはどうすればよいですか?
PS。からこの日付jDatePicker
を取得しましたが、ユーザーが日付を選択したときに取得した日付形式を変更する方法についての指示はありません。
java - JavaでSimpleDateFormatを使用して年を正しく取得しないのはなぜですか?
Formatでデータを解析しようとするとMySql
、に遭遇しましSimpleDateFormat
た。適切な日と月を取得できますが、その年の結果は奇妙です。
出力:
フォーマットをYYYY-MM-dd
(エラーが発生)とyy-MM-dd
(何もしなかった)に変更してみました。私はAndroidでプログラミングしていますが、それが重要かどうかわかりません。
今のところ、分割を使用してそれをバイパスしますが、それは汚れていて、i18n機能を使用できません。
java - SimpleDateFormat( "hh:mm aa")を使用して「23:00PM」を解析すると午前11時が返されるのはなぜですか。
なぜ「23:00PM」をSimpleDateFormat("hh:mm aa")
午前11時に解析するのですか?
java - 標準時をGMTに解析するにはどうすればよいですか?
この日付を解析するJavaコードを誰かに見せてもらえますか?
2009-08-05
このGMT日付に:
2009/217:00:00
====
私がこれまでに持っているものは:
しかし、それは機能していません
java - 新しい SimpleDateFormat オブジェクトに間違った年のカレンダーが含まれているのはなぜですか?
私は奇妙な行動に出くわし、好奇心旺盛で、まだ満足のいく説明がありません.
簡単にするために、気付いた症状を次のコードに減らしました。
このコードを実行すると、次のような出力が得られます。
"yyyy-MM-dd"
( SimpleDateFormatのような有効な書式文字列を指定すると、同じことが起こります。)
恐ろしい非ラッピング行を許してください, しかし、それは2つを比較する最も簡単な方法です. 2/3 ほどスクロールすると、カレンダーの YEAR 値がそれぞれ 1929 年と 2009 年であることがわかります。(年の週、曜日、DST オフセットなど、他にもいくつかの違いがあります。) どちらも明らかに GregorianCalendar のインスタンスですが、それらが異なる理由は不可解です。
私が言えることから、フォーマッタは、渡された Date オブジェクトをフォーマットするときに正確な結果を生成します。明らかに、正しい基準年よりも正しい機能性の方が重要ですが、それでもこの不一致は当惑させられます。現在の年を取得するためだけに、新しい日付フォーマッタでカレンダーを設定する必要があるとは思いません...
Java 5 (OS X 10.4、PowerPC) および Java 6 (OS X 10.6、Intel) を搭載した Mac でこれをテストしましたが、結果は同じでした。これは Java ライブラリ API であるため、すべてのプラットフォームで同じように動作すると想定しています。ここで何が起こっているかについての洞察はありますか?
(注:このSOの質問は多少関連していますが、同じではありません。)
編集:
以下のすべての回答は、この動作の説明に役立ちました。SimpleDateFormatの Javadoc には、実際にこれがある程度文書化されていることがわかります。
「省略された年パターン ("y" または "yy") で解析するために、SimpleDateFormat は、ある世紀に関連する省略された年を解釈する必要があります。これは、SimpleDateFormat インスタンスの時刻の 80 年前と 20 年後の日付を調整することによって行われます。創造された。"
そのため、解析対象の日付の年にこだわる代わりに、デフォルトで内部カレンダーを 80 年戻します。その部分自体は文書化されていませんが、それについて知っていると、すべての部分がうまく収まります。
java - SimpleDateFormat を使用した一貫性のない日付解析
私は本当にこれに頭を悩ませています。私はSimpleDateFormat
しばらく問題なく s を使用してきましたが、現在、SimpleDateFormat を使用して日付を解析することは (時々だけ) 単純に間違っています。
具体的には:
文字列を出力しますWed Aug 19 00:00:00 EDT 2009
。一体何?-常に間違った日付に解析することさえありません!
更新:それはそれを美しく修正しました。それは他のいくつかの場所でも悪用されていました。他の人のコードをデバッグするのが大好きです:)
java - -/またはを許可するJava日付形式。日付内の区切り文字として
次のいずれかの形式の日付を解析するための最も良い方法は何ですか
3つのSimpleDateFormatsを作成し、それぞれに対して解析することなく。
ありがとう
java - SimpleDateFormatおよびロケールベースのフォーマット文字列
指定されたロケールに基づいて、さまざまな方法でJavaで日付をフォーマットしようとしています。たとえば、英語のユーザーには「2009年11月1日」(「MMMd、yyyy」でフォーマット)を表示し、ノルウェーのユーザーには「2009年11月1日」(「d。MMM。yyyy」)を表示させます。
SimpleDateFormatコンストラクターにロケールを追加すると、月の部分は問題なく機能しますが、残りはどうでしょうか。
SimpleDateFormatにロケールとペアになったフォーマット文字列を追加できることを望んでいましたが、これを行う方法が見つかりません。コードでロケールをチェックし、対応するフォーマット文字列を追加することは可能ですか、それとも必要ですか?
java - タイムゾーン、カレンダー、SimpleDateFormatに関する奇妙な問題
次のコードを考えてみましょう。
このコードスニペットを実行すると、次の出力が得られます。
なぜ異なるタイムゾーンを取得するのですか?
最初の日付を8月に設定し、2番目の日付を9月に設定すると、どちらの場合も出力に同じタイムゾーンが表示されることに注意してください。
表示されます:
Java1.6.0_14を使用しています
java - この SimpleDateFormat フォーマット エラーの原因は何ですか?
データベースに java.sql.Timestamp として日付を保存しています。日付は「2010-01-20T19:10:35.000Z」で、1264014635743 ミリ秒に相当します。
どういうわけか、日付は開発マシンと比較して製品マシンで異なる形式になっています。
日付をフォーマットするコードは次のとおりです。
dev で生成された出力は、正しい "2010-01-20" です。しかし、製品には「2010-01-21」があり、1日後です!
もちろん、prodサーバーでエラーが発生するため、デバッグオプションは限られています...
再確認しましたが、両方のサーバーの時刻とタイムゾーンが同じです。両方のクロックは ntp サーバーと同期されます。
[更新] prod のデータベースの値は、日付フィールドの「10-01-20 19:10:35,743000000」です。