如何将 Java 中的日期格式化为仅月、日和小时?
如果我只需要打印月份 (MMM)、日期 (DD) 和小时 (HH),我该如何格式化日期?
所以输出看起来像这样:(
Jul 18 9
即 7 月 18 日 09:00)。
我已经尝试过以下方法
private static void createDate () {
String startConcat = startMonth + " " + startDate + " " + startTime;
DateFormat start = new SimpleDateFormat ("MMM DD H");
try {
Date date = (Date)start.parse(startConcat);
System.out.println(date);
} catch (ParseException e) {
}
}
,而且它似乎也没有正确读取我的月份...我将此作为输出,
Sun Jan 18 09:00:00 EST 1970
任何帮助将不胜感激。
How would I format the date, if I only need it to print the month (MMM), date (DD) and the hour (HH)?
So output would look something like:
Jul 18 9
(that being July 18th 09:00).
I've tried the following
private static void createDate () {
String startConcat = startMonth + " " + startDate + " " + startTime;
DateFormat start = new SimpleDateFormat ("MMM DD H");
try {
Date date = (Date)start.parse(startConcat);
System.out.println(date);
} catch (ParseException e) {
}
}
Also it doesn't seem to read my month properly too...I am getting this as an output
Sun Jan 18 09:00:00 EST 1970
any help would be deeply appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(3)
音盲2024-12-07 13:14:07
现代 Java
在 Java 8+ 中,使用 java.time 类取代了存在严重缺陷的遗留类,例如 Calendar
和 Calendar
。 SimpleDateFormat
。
MonthDay
要表示没有年份的月份和日期,请使用 MonthDay
。
MonthDay monthDay = MonthDay.of( Month.JULY , 18 ) ;
LocalTime
要表示仅时间值,请使用 本地时间
。
LocalTime localTime = LocalTime.of( 9 , 0 );
DateTimeFormatter
生成文本。
传递 Locale
指定自动本地化月份名称所需的人类语言和文化规范。
Locale locale = Locale.of( "en" , "US" );
DateTimeFormatter fMD = DateTimeFormatter.ofPattern( "MMM dd" ).withLocale( locale ) ;
String md = monthDay.format( fMD ) ;
DateTimeFormatter fLT = DateTimeFormatter.ofPattern( "H" ) ;
String t = localTime.format( fLT ) ;
String output = String.join( " " , md , t ) ;
7月18日9
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
您应该使用
格式
(javadoc) 方法。You should use the
format
(javadoc) method.