解析字符串

时间:2015-12-26 14:25:21

标签: java

我无法找到我的确切问题的答案,所以在这里......我们说我有一个字符串数组,其时间值我希望转换为24小时,如下所示:

String[] strings = {"12:04 am", "12:04 pm"};
System.out.println("Pick-up Times: ");
for (String i: strings) 
    System.out.println(i);
System.out.println();

DateFormat format = new SimpleDateFormat("hh:mm a");

System.out.println("Converted to 24-Hour format: ");
for (String i: strings) {
    Date date = format.parse(i);        
    Time time = new Time(date.getTime());
    System.out.println(time);
}

输出:

  

接送时间:
  上午12:04   下午12:04

     

转换为24小时格式:
  00:04:00
  12时04分00秒

这很有效,但我们说我有一个范围,比如下午12点到12点10分,例如:

String[] strings = {"12:00 pm - 12:10 pm"};
System.out.println("Pick-up Times: ");
for (String i: strings) 
    System.out.println(i);
System.out.println();

DateFormat format = new SimpleDateFormat("hh:mm a");

System.out.println("Converted to 24-Hour format: ");
for (String i: strings) {
    Date date = format.parse(i);        
    Time time = new Time(date.getTime());
    System.out.println(time);
}

这是我的输出:

  

接送时间:
  中午12点至12点10分

     

转换为24小时格式:
  12:00:00

我尝试过改变SimpleDateFormat:

DateFormat format = new SimpleDateFormat("hh:mm a - hh:mm a");

结果很有意思:

  

接送时间:
  中午12点至12点10分

     

转换为24小时格式:
  12时10分00秒

我要找的结果是:

  

接送时间:
  中午12点至12点10分

     

转换为24小时格式:
  12:00:00 - 12:10:00

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这是OPs解决方案(从问题中提取):

解决方案非常简单。对于遇到同样问题的任何人来说,这都可以解决问题:

String[] strings = {"12:00 pm - 12:10 pm"};
System.out.println("Pick-up Times: ");
for (String i: strings) 
    System.out.println(i);
System.out.println();

DateFormat format = new SimpleDateFormat("hh:mm a");
int count = 0;

System.out.println("Converted to 24-Hour format: ");
for (String i: strings) {
    String[] test = i.split(" - ");
    for (String j: test)
    {
        Date date = format.parse(j);        
        Time time = new Time(date.getTime());
        System.out.print(time);
        if (count == 0)
            System.out.print(" - ");
        count++;
    }
    System.out.println();
}

输出:

  

接送时间:
  中午12点至12点10分

     

转换为24小时格式:
  12:00:00 - 12:10:00

答案 1 :(得分:0)

好吧,如果问题与范围有关,可以将其拆分。我将为您提供几行代码,以便您根据代码进行调整:

String s = {"ABC - aaa - eee - ccc"};
String arr[] = s.split(" - ");
for(String str: arr)
    SYstem.out.println(str);

您可以使用s

代替strings