时间字符串到时间表示Java

时间:2017-04-26 11:34:31

标签: java

我有一个这样的字符串210115我想将其表示为21:01:15任何想法? 我尝试使用阳历,但它添加了我不想要的日期

SimpleDateFormat sdf = new SimpleDateFormat("HHmmss");
Date date = new Date();
try{
 date = sdf.parse("210115");
}
 catch(Exception e){
}

Calendar calendar = GregorianCalendar.getInstance();
calendar.setTime(date);
System.out.print(calendar.getTime());

输出为Thu Jan 01 21:01:15 UTC 1970,但我想要的只是21:01:15

感谢。

3 个答案:

答案 0 :(得分:2)

要输出格式化日期,请使用另一个SimpleDateFormat对象,其格式为所需格式。

在这种情况下,听起来你可能想要使用类似的东西

SimpleDateFormat outputFormat = new SimpleDateFormat("HH:mm:ss");
System.out.println( outputFormat.format(date) );

答案 1 :(得分:2)

所以你想要的只是一个时间,没有时区。我建议使用LocalTime类,而不是Date类。

LocalTime time = LocalTime.parse("210115", DateTimeFormatter.ofPattern("HHmmss"));

答案 2 :(得分:0)

如果您以“ 210115 ”这种格式获取日期字符串,并且您希望它采用“ 21:01:15 ”格式,那么为什么使用日期格式。 只需将字符串操作作为:

  String time="210115";
        String newtime=time.substring(0,2)+":"+time.substring(2,4)+":"+time.substring(4,6);
        System.out.println(newtime);

您将获得所需的格式。 21:01:15