如何以AM/PM格式显示时间

Jee*_*eet 4 java datetime

我想以AM/PM格式显示时间.示例:上午9:00我也想执行加法减法运算.我的活动将从上午9:00开始.我想添加分钟来获得结果计划事件.除了制作自定义Time类之外,我该怎么办?

开始9:00 AM添加45分钟,添加开始时间9:45 AM

Mad*_*mer 10

从a开始SimpleDateFormat,这将允许您解析和格式化时间值,例如......

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a");
try {
    // Get the start time..
    Date start = sdf.parse("09:00 AM");
    System.out.println(sdf.format(start));
} catch (ParseException ex) {
    ex.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

有了这个,您可以使用Calendar它来操作日期值的各个字段...

Calendar cal = Calendar.getInstance();
cal.setTime(start);
cal.add(Calendar.MINUTE, 45);
Date end = cal.getTime();
Run Code Online (Sandbox Code Playgroud)

把它们放在一起......

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a");
try {
    Date start = sdf.parse("09:00 AM");
    Calendar cal = Calendar.getInstance();
    cal.setTime(start);
    cal.add(Calendar.MINUTE, 45);
    Date end = cal.getTime();

    System.out.println(sdf.format(start) + " to " + sdf.format(end));
} catch (ParseException ex) {
    ex.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

输出 09:00 AM to 09:45 AM

更新

或者你可以使用JodaTime......

DateTimeFormatter dtf = new DateTimeFormatterBuilder().appendHourOfDay(2).appendLiteral(":").appendMinuteOfHour(2).appendLiteral(" ").appendHalfdayOfDayText().toFormatter();
LocalTime start = LocalTime.parse("09:00 am", dtf);
LocalTime end = start.plusMinutes(45);

System.out.println(start.toString("hh:mm a") + " to " + end.toString("hh:mm a"));
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用的是Java 8,那么新的日期/时间API ......

DateTimeFormatter dtf = new DateTimeFormatterBuilder().appendPattern("hh:mm a").toFormatter();
LocalTime start = LocalTime.of(9, 0);
LocalTime end = start.plusMinutes(45);

System.out.println(dtf.format(start) + " to " + dtf.format(end));
Run Code Online (Sandbox Code Playgroud)