编写一个java程序用以将AM/PM格式的时间转换为24小时格式,求大神完成代码

输入:9:30pm/输出:21:30输入:9:30am/输出:9:30输入:12:30pm/输出:12:30输入:9:30/输出:9:30输入:19:30/输出:19:3... 输入: 9:30pm / 输出: 21:30
输入: 9:30am / 输出: 9:30
输入: 12:30pm / 输出: 12:30
输入: 9:30 / 输出: 9:30
输入: 19:30 / 输出: 19:30
public classTimeConverter {
public static voidmain(String[] args) {
TimeConverter cont = newTimeConverter();
// Test
System.out.println("9:30pm -> "+ cont.convert("9:30pm"));
System.out.println("9:30am -> "+ cont.convert("9:30am"));
System.out.println("12:30pm -> "+ cont.convert("12:30pm"));
System.out.println("9:30 -> "+ cont.convert("9:30"));
System.out.println("19:30 -> "+ cont.convert("19:30"));
}
publicString convert(String ampm) {
//在此处写出解决问题的程序代码 …
}
}
展开
 我来答
shine七分稚气
2015-11-10 · TA获得超过569个赞
知道小有建树答主
回答量:160
采纳率:100%
帮助的人:27.1万
展开全部
SimpleDateFormat objSDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strCurrentTime = objSDateFormat.format(Date类型的时间);

注:大写的HH为24小时制,小写的hh为12小时制,当然还可以在ss的后面加上 a,这样可以在后面显示上下文:显示效果为“2008-03-24 17:00:14 下午”

这个更全
实现思路就是输入一个时间,之后会输出相应的12小时和24小时效果展示:
import java.text.SimpleDateFormat;
import java.util.Locale;
import java.util.Scanner;

public class App {

public static void main(String[] args) {
while (true) {
System.out.println("Enter time in 24-hour notation:");
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
try {
outTime(line);
} catch (TimeFormatException e) {
System.out.println("There is no such time as " + line);
System.out.println("Try again:");
continue;
}
sc = new Scanner(System.in);
line = sc.nextLine();
if ("n".equalsIgnoreCase(line)) {
break;
}

}
System.out.println("End of program");
}

public static void outTime(String line) throws TimeFormatException {
SimpleDateFormat _24time = new SimpleDateFormat("HH:mm");
SimpleDateFormat _12time = new SimpleDateFormat("hh:mm a",
Locale.ENGLISH);
try {
String[] array = line.split(":");
if (Integer.parseInt(array[0]) < 0
|| Integer.parseInt(array[0]) > 23) {
throw new TimeFormatException();
}
if (Integer.parseInt(array[1]) < 0
|| Integer.parseInt(array[1]) > 59) {
throw new TimeFormatException();
}
System.out.println(_12time.format(_24time.parse(line)));
System.out.println("Again?(y/n)");
} catch (Exception e) {
throw new TimeFormatException();
}
}
}
class TimeFormatException extends Exception {

}
优质内容提供者andy
推荐于2017-11-21 · TA获得超过1561个赞
知道大有可为答主
回答量:2551
采纳率:72%
帮助的人:754万
展开全部
public String convert(String ampm) {
// 在此处写出解决问题的程序代码 …
if(ampm.contains("am")){

return ampm.substring(0, ampm.indexOf("am"));
}else if(ampm.contains("pm")){

int i = ampm.indexOf(":");
String s= ampm.substring(0, i);

int hour = Integer.parseInt(s);
if(hour >= 12){

String res = ampm.substring(0, ampm.indexOf("pm"));

return res;
}else{
String sHour = hour+12 + "";
return sHour + ampm.substring(ampm.indexOf(":"), ampm.indexOf("pm"));

}

}else{

return ampm;

}

}
完美解决 看在我这么辛苦的情况下请给采纳加精
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
璀璨圣剑圣龙神bj
2015-11-10 · TA获得超过146个赞
知道答主
回答量:113
采纳率:0%
帮助的人:80万
展开全部
public  String convert(String ampm){
if(ampm.contains("am")){
ampm=ampm.substring(0,ampm.length()-2);
}else if(ampm.contains("pm")){
ampm=ampm.substring(0,ampm.length()-2);
int hour=Integer.parseInt(ampm.split(":")[0]);
if(hour<12){
ampm=(hour+12)+":"+ampm.split(":")[1];
}
}
return ampm;
}



你看看对不对,写的不太好,请见谅

追问
我想自己输入时间,能改下代码吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xulonghui2011
2015-11-10 · 超过34用户采纳过TA的回答
知道答主
回答量:87
采纳率:100%
帮助的人:66.1万
展开全部
package com.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Locale;
public class AmPmUtil
{
 
 public static void main(String[] args)
 {
  try
  {
   System.out.println(AmPmUtil.convert("9:30pm"));
   System.out.println(AmPmUtil.convert("9:30am"));
   System.out.println(AmPmUtil.convert("12:30pm"));
   System.out.println(AmPmUtil.convert("9:30"));
   System.out.println(AmPmUtil.convert("19:30"));
  }
  catch (final ParseException e)
  {
   e.printStackTrace();
  }
 }
 
 /**
  * 转换到24小时
  * @param ampm
  * @return
  * @throws ParseException
  */
 private static String convert(String ampm) throws ParseException
 {
  final SimpleDateFormat format = new SimpleDateFormat("HH:mm");
  SimpleDateFormat parse = null;
  if (ampm.indexOf("m") > -1)
  {
   parse = new SimpleDateFormat("hh:mma", Locale.ENGLISH);
  }
  else
  {
   parse = format;
  }
  return format.format(parse.parse(ampm));
 }
 
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式