2016-11-23 144 views
-1

我存储时间,在此格式数据库:"hh:mm:ss"(示例 - 09:30:00),然后检索,并试图将其展示给这种格式的用户:“HH:MM AM/PM”(示例 - 09: 30 AM)。有没有办法将时间从“hh:mm:ss”格式转换为“hh:mm AM/PM”格式?

我使用下面的代码,用于将它:

DateFormat currentTime = new SimpleDateFormat("hh:mm a"); 
String startTimeInSF = currentTime.format(startTime); 
String endTimeInSF = currentTime.format(endTime); 

其中startTimeendTime是在hh:mm:ss格式,但上面的代码是生产这样的错误:java.lang.IllegalArgumentException: Bad class: class java.lang.String

请让我知道我可以成功地转换时间从hh:mm:sshh:mm AM/PM

+0

试试这个 “HH:MM TT” –

+0

@PrasannaKumarJ失败!产生这个错误:'java.lang.IllegalArgumentException异常:未知图形字符“t'' –

+1

你需要一个'SimpleDateFormat'从其原始格式解析您的日期,而另一个'SimpleDateFormat'的结果格式化成一种新的格式。 –

回答

3

我想你应该分析你的 “HH:MM:SS” 的时间为Date对象,然后用格式进行格式化为 “HH:MM一”。

像这样:

DateFormat format1 = new SimpleDateFormat("hh:mm:ss"); 
    try { 
     Date date = format1.parse("01:11:22"); 
     SimpleDateFormat format2 = new SimpleDateFormat("hh:mm a"); 
     String result = format2.format(date); 
     return result; 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
1

我相信你正在寻找的解析(字符串源)方法。 format()方法接受一个Date对象并输出该对象的String表示。解析方法接受一个String对象并将其转换为一个Date对象。

做你想做什么,你都需要有一个HH日期格式:MM:SS,使用解析数据库字符串转换为日期,然后再使用现有的日期格式,并使用Date对象的格式获得输出字符串以显示给您的用户。

http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html

0

你需要改变你的代码是这样的,格式化的功能不会直接String对象,那是你的异常根源上工作。

DateFormat inputFormatter1 = new SimpleDateFormat"HH:mm:ss"); 
     Date date1 = inputFormatter1.parse("22:10:11"); 

     DateFormat outputFormatter1 = new SimpleDateFormat("hh:mm a"); 
     String output1 = outputFormatter1.format(date1); // 

输出将是下午10时10

相关问题