【问题标题】:Time Conversion from 12-hour to 24-hour clock in JavaJava 中从 12 小时制到 24 小时制的时间转换
【发布时间】:2013-04-04 13:28:04
【问题描述】:

我有一个时间字符串,格式如下。

"MM/dd/yyyy hh:mm AM/PM"

我需要以24:00 小时格式获取时间

例如:

String str = "04/30/2013 10:20PM"

我需要以22:20获取时间

【问题讨论】:

标签: java datetime syntax datetime-conversion


【解决方案1】:

您必须使用 SimpleDateFormat 进行任何类型的日期时间转换。
你可以试试这个:

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateConversion {
   public void convertDate() {
      try{
       SimpleDateFormat df = new SimpleDateFormat("HH:mm");
       SimpleDateFormat pf = new SimpleDateFormat("MM/dd/yyyy hh:mm a");
       Date date = pf.parse("10:20PM");
       System.out.println(pf.format(date) + " = " + df.format(date));
        }catch(Exception e){
        // Do your exception handling over here.
        }
   }
}

我猜这会解决你的问题。
这将给出一个输出:22:20

如有任何问题,请告诉我。

【讨论】:

  • 使pf "MM/dd/yyyy hh:mm a" 匹配完整的字符串。
  • 日期日期 = pf.parse(dateStr);时间 time = new Time(date.getTime());这将以 sql 时间格式给出时间。
【解决方案2】:

使用SimpleDateFormat 将字符串转换为日期对象,然后对其进行格式化。

String str = "04/30/2013 10:20PM";
Date date = new SimpleDateFormat("MM/dd/yyyy hh:mma").parse(str);
String result = new SimpleDateFormat("HH:mm").format(date);

请参阅here 了解类似问题。

【讨论】:

    【解决方案3】:

    使用“HH”而不是“hh”例如:

    Date dNow = new Date( );
    SimpleDateFormat ft =   new SimpleDateFormat ("MM/dd/yyyy HH:mm ");
    System.out.println("Current Date: " + ft.format(dNow));
    

    in this link, specially in "Simple DateFormat format codes:" 你可以发现:

    Character   Description               Example
    
    h           Hour in A.M./P.M. (1~12)    12
    H           Hour in day (0~23)          22
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2021-12-24
      • 2021-10-14
      • 2021-12-05
      相关资源
      最近更新 更多