私は解決できない頑固な問題に遭遇しました。私はstackoverflowで解決策を探し、Javaの日付フォーマットに関する多くの投稿を見つけましたが、私が抱えている問題に固有のものは何もありません.
基本的に、日付文字列を java.util.Date オブジェクトに変換する必要がある状況があります。Date および SimpleDateFormat クラスを使用しています。私が遭遇したほとんどの日付では、問題なく動作します。ただし、一部の日付では機能しますが、実際の日付が変更されます。2 つの日付の例:
Fri Feb 24 16:45:40 PST 2012 --> 変更されます --> Fri Jan 06 16:45:40 PST 2012
Wed Jun 13 10:00:42 PDT 2012 --> に変更 --> Wed Jan 04 09:00:42 PST 2012
日付が変更される理由は何か分かりますか? これを簡単に回避する方法、または別の方法で行う方法はありますか? 私のコードを以下にコピーします。私が話していることを確認するためにそれを試すことができます。
前もって感謝します!
これは、次の JSP コードで試すことができます。
<%@ page import="java.util.*" %>
<%@ page import="java.net.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.text.*" %>
<%
String dateStr = "";
Date tmpDate = null;
DateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z YYYY");
System.out.println("First Test ---------------");
dateStr = "Fri Feb 24 16:45:40 PST 2012";
tmpDate = (Date) formatter.parse(dateStr);
System.out.println("Original:"+dateStr+":");
System.out.println("Date Obj:"+tmpDate.toString()+":");
System.out.println("Second Test --------------");
dateStr = "Wed Jun 13 10:00:42 PDT 2012";
tmpDate = (Date) formatter.parse(dateStr);
System.out.println("Original:"+dateStr+":");
System.out.println("Date Obj:"+tmpDate.toString()+":");
%>
次の出力が得られます。
First Test ------------
Original:Fri Feb 24 16:45:40 PST 2012:
Date Obj:Fri Jan 06 16:45:40 PST 2012:
Second Test -----------
Original:Wed Jun 13 10:00:42 PDT 2012:
Date Obj:Wed Jan 04 09:00:42 PST 2012: