【发布时间】:2021-12-24 18:46:11
【问题描述】:
我正在编写一个转换时间(12 小时和 24 小时)的程序。 我想要得到的结果如下:
convertTime ("12:00") ➞ "0:00"
convertTime ("6:20 pm") ➞ "18:20"
convertTime ("21:00") ➞ "9:00 pm"
convertTime ("5:05") ➞ "5:05"
这是我的代码,不幸的是结果不是我所期望的,事实上:
-
12 小时的时间输入将带有 am 或 pm 后缀。
-
24 小时的输入时间不包含后缀。
非常感谢您的帮助,在此先感谢!
public static String convertTime(String time) {
String hour = time.substring(0, time.indexOf(":"));
String min = time.substring(3, time.indexOf(":") + 3);
int hourInteger = Integer.parseInt(hour);
if (hourInteger > 12 && hourInteger < 24) {
hourInteger = hourInteger - 12;
}
if (hourInteger == 24) {
hourInteger = 0;
}
if (hourInteger < 12) {
return hourInteger + ":" + min + " AM";
}
if (hourInteger > 12)
return hourInteger + ":" + min + " PM";
return hourInteger;
}
【问题讨论】:
-
如果允许您使用标准(内置)库,请使用java.time, the modern Java date and time API。你是吗?
-
我不清楚您的要求。第一个例子是指午夜还是中午?输入或输出应该有 am 或 pm 后缀吗?顺便说一句,有一种方法将 12 小时格式转换为 24 小时格式,另一种方法进行相反的转换,不是更清晰更清晰吗? 结果不是我所期望的——你得到了哪些结果?