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

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

mip版  关注:97  答案:4  悬赏:70

解决时间 2021-01-27 18:52

41599c867c8a53cd318faac51e7ee599.png

已解决

2021-01-26 21:12

输入: 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) {

//在此处写出解决问题的程序代码 …

}

}

最佳答案

df5b568482570cd4979693bfbb916a4c.png

2021-01-26 21:31

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;

}

}

完美解决 看在我这么辛苦的情况下请给采纳加精

全部回答

a6c677af7463dc2f0dcc37b027957521.png

1楼

2021-01-26 23:28

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 {

}

a542cc89351b80364cc91cd542cbaf20.png

2楼

2021-01-26 23:12

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;

}

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

2c2e7fc5674380ee3a0cb0fad1c3249b.png

3楼

2021-01-26 22:43

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();

}

}

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));

}

}

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

点此我要举报以上信息!

推荐资讯

大家都在看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值