0

以下のコードスニペットがあります

SimpleDateFormat dateFormat = new SimpleDateFormat(
      "yyyy-MM-dd hh:mm:ss.SSS");
 String processedContentDate="2012-04-10 12:53:28.033";   
 java.util.Date parsedDate = dateFormat.parse(processedContentDate);
java.sql.Timestamp timestamp = new java.sql.Timestamp(
 parsedDate.getTime());

解析された日付はTueApr10 00:53:28 IST 2012で、タイムスタンプは2012-04-10 00:53:28.033です。 00:53:28.033ではなく12:53:28.033(元の文字列のように)と正確に時刻を取得したい。 12:53:28が00:53:28に変換される理由がわかりません。12:53:28を取得するにはどうすればよいですか?

編集:応答を取得した後、現在の時刻が14:34:38.899であるこの小さなプログラムを試しましたが、両方の行、つまり1行目と2行目で、解析日を下回りました2012-04-10 14:34:38.899返信日付形式は次のように、1行目で02:34:38.899を取得する必要がありますyyyy-MM-dd hh:mm:ss.SSS")

    java.util.Date date= new java.util.Date();
    String strDate=date.toString();
    java.util.Date parsedDate;
    java.util.Date parsedDate2;
     SimpleDateFormat dateFormat = new SimpleDateFormat(
     "yyyy-MM-dd hh:mm:ss.SSS");// line 1
     SimpleDateFormat dateFormat2 = new SimpleDateFormat(
     "yyyy-MM-dd HH:mm:ss.SSS");//line 2
     try {
         java.sql.Timestamp timestamp = new java.sql.Timestamp(date.getTime());
          strDate=timestamp.toString();


            parsedDate = dateFormat.parse(strDate);//line1
            parsedDate2 = dateFormat2.parse(strDate);//line2
4

4 に答える 4

5

dateFormatあなたのそのように定義する

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

HHの代わりにhhSimpleDateFormatを参照してください

于 2012-04-10T07:48:34.957 に答える
1

Date.toString()およびTimestamp.toStringの定義に従って、.toString()出力は常に 24 時間制を使用しています。AM/PM を使用して時刻を表示する場合は、dateformatter を使用して日付を出力する必要があります。両方のソースとして同じ日付/時刻を使用しているため ( strDate14:34 を使用します)、日付を解析する場合SimpleDateFormat、12 時間時計の使用は「寛大」であり、14 時間を 1 時間として解析できます。

設定した場合

dateFormat.setLenient(false);

dateFormat.parse(strDate)おそらく失敗することがわかります。

日付を印刷するために、私は絶対に に頼らずtoString、常にフォーマッターを使用します。

System.out.println(dateFormat.format(parsedDate)); // should show ...02:36...
System.out.println(dateFormat2.format(parsedDate)); // should show ...14:36...
System.out.println(dateFormat.format(parsedDate2)); // should show ...02:36...
System.out.println(dateFormat2.format(parsedDate2)); // should show ...14:36...
于 2012-04-10T09:33:37.787 に答える
1

日付形式はyyyy-MM-dd HH:mm:ss.SSS.

hhは午前/午後でHHの時間ですが、 は 1 日での時間です (ここで間違いがあります)。を参照してくださいSimpleDateFormat

于 2012-04-10T07:48:50.897 に答える
-1

以下のコードを試してください:

SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 日付 date = fmt.parse("yourdate"); SimpleDateFormat fmtOut = new SimpleDateFormat("dd-MM-yyyy hh:mm a");String myDate = fmtOut.format(date);

yourdate が 2016-06-10 12:06:43 の場合、出力は 10-06-2016 12:06 pm になります。

于 2016-06-10T06:39:58.990 に答える