我有以下代码:
Date time = new SimpleDateFormat("HH:mm").parse("8:00");
当我致电time.toString()
时,会产生以下内容:
Thu Jan 01 08:00:00 CET 1970
有什么方法可以从中提取8:00
吗?我已经远程搜索并且没有找到任何方法使用标准的SimpleDateFormat。
答案 0 :(得分:3)
当我调用time.toString()时,会生成以下内容
是的,会是 - 因为你正在呼叫Date.toString
。 Date
值没有格式概念。
有什么方法可以从中提取8点吗?
每当您想要转换为字符串时,都应使用DateFormat
。因此,请使用您解析的格式。
或者,使用Joda-Time,其中LocalTime
类型专门用于“时间”,并且有一个方便的parse
方法。每次要转换为字符串时,仍然使用formatter,但在此之前,至少该值将更易于使用且更具描述性。
LocalTime localTime = LocalTime.parse("8:00");
要设置此格式,您可以使用类似ISODateTimeFormat.hourMinute()
的内容,或者如果您可能具有更高的精确度,可能ISODateTimeFormat.hourMinuteSecond()
- 请参阅所有可用选项的文档。
答案 1 :(得分:2)
回收原始SimpleDateFormat
对象
SimpleDateFormat format = new SimpleDateFormat("HH:mm")
Date time = format.parse("8:00");
String outString = format.format(time);
答案 2 :(得分:1)
使用相同的SimpleDateFormat实例将日期格式化为字符串。
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
Date time = sdf.parse("8:00");
System.out.println(sdf.format(time));
这将打印:
08:00
答案 3 :(得分:0)
java.util.Date class表示特定的时刻,精确到毫秒。
将此Date对象转换为以下形式的String:
dow mon dd hh:mm:ss zzz yyyy
为了格式化日期的使用SimpleDateFormat类
System.out.println(new SimpleDateFormat("HH:mm").format(time));