2016-09-14 23 views
2

我在我的mySqldb中有一个字符串:2016-09-14 12:00:00,在我的应用程序中,我希望得到只有一个小时,所以12:00,但使用0- 24小时。 例子:解析日期android 0-24与12:00

input > 2016-09-14 12:00:00 output > 12:00:00 
input > 2016-09-14 14:00:00 output > 14:00:00 
input > 2016-09-14 08:00:00 output > 08:00:00 

所以我试图用

DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
DateFormat outputFormat = new SimpleDateFormat("hh:mm:ss"); 

但返回

output > 12:00 
output > 02:00 
output > 08:00 

因此,没有14:00 我试着用

DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
DateFormat outputFormat = new SimpleDateFormat("kk:mm:ss"); 

但回报所以用24:00改为12:00

而且

output > 24:00 
output > 14:00 
output > 08:00 

也:

DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
DateFormat outputFormat = new SimpleDateFormat("HH:mm:ss"); 

但返回

output > 00:00 
output > 14:00 
output > 08:00 

所以用00:00改为12:00

如何能有输出
12:00 
14:00 
08:00 
+0

我真的不得到你的目标是什么 –

+0

我想要的setText小时的TextView所以如果我的数据库分析从数据库的日期,但每小时0-24我有14/09/2016 12:00:00设置文本12:00,但如果我有14/09/2016 14:00:00设置文本14:00,如果我有14/09/2016 08:00:00设置文本与08:00 – LorenzoBerti

+0

关于包含文本“0-24”的标题,请注意,特殊时间24:00(在一天结束的午夜)不能用SimpleDateFormat API进行打印或解析。 –

回答

2

变化

DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 

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

你的输入是24小时制,不12小时格式。

输出应该是:

DateFormat outputFormat = new SimpleDateFormat("HH:mm:ss"); 

https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

+0

谢谢!你是对的,在HH而不是在输入中,即使在100年后我也不会注意到:D! – LorenzoBerti