1

我在以下格式的字符串中有时间。

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

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

前任:

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

我需要时间22:20

4

3 回答 3

3

您必须使用 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

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

于 2013-04-04T13:32:09.013 回答
3

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

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);

有关类似问题,请参见此处。

于 2013-04-04T13:38:51.660 回答
1

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

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

在此链接中,特别是在“简单 DateFormat 格式代码:”中,您可以找到:

Character   Description               Example

h           Hour in A.M./P.M. (1~12)    12
H           Hour in day (0~23)          22
于 2013-04-04T13:46:05.747 回答