Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java存储时间_Java_Time - Fatal编程技术网

用Java存储时间

用Java存储时间,java,time,Java,Time,我是编程方面的新手,我想知道如何与PM或am一起存储时间。例如,用户可以输入下一次时间:晚上10:45 然后10将存储在变量hh中,45存储在mm中,并且PM存储在aa中。这是我已经尝试过的代码 String a = sc.next(); String [] b = a.split(":"); String [] c = a.split(" "); int hh = Integer.parseInt(b[0]); int mm = Integer.parseInt(b[1]); String

我是编程方面的新手,我想知道如何与PM或am一起存储时间。例如,用户可以输入下一次时间:晚上10:45

然后10将存储在变量
hh
中,45存储在
mm
中,并且
PM
存储在aa中。这是我已经尝试过的代码

String a = sc.next();

String [] b = a.split(":");
String [] c = a.split(" ");

int hh = Integer.parseInt(b[0]);
int mm = Integer.parseInt(b[1]);
String aa = c[1];

System.out.println(aa);

正如亚西莉亚说的,你也许应该看看。并使用自制的格式设置所需的输入字符串

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm a");
LocalTime localTime = LocalTime.parse("10:45 pm", formatter);
int hh = localTime.getHour(); 
// int hh = localTime.get(ChronoField.HOUR_OF_AMPM); // To get 10 instead of 22 for example (see comments)
int mm = localTime.getMinute();
String aa = localTime.get(ChronoField.AMPM_OF_DAY) == 0 ? "AM" : "PM";
// String aa = localTime.isBefore(LocalTime.NOON) ? "AM":"PM";
但是,如果您确实希望用户输入时间,请始终遵循相同的格式,您可以执行以下操作:

String a = sc.next();

String [] b = a.split(":");
String [] c = b.split(" ");

int hh = Integer.parseInt(b[0]);
int mm = Integer.parseInt(c[0]);
String aa = c[1];

使用您的代码。

编程的一个重要部分是为任务使用正确的工具。在你的情况下,a是合适的。然后,您可以使用它的方法查询小时/分钟等。但是,如果输入时间始终以相同的格式给出,那么您的代码是好的,但是c将在
c={“10:45”,“PM”}
中拆分,您可能希望改为拆分
b
。旁注:为变量提供更具描述性的名称<代码>a变为
输入
hh
变为
小时
mm
变为
分钟
aa
更为棘手,但在java中可能会变成
period
@Michael FWIW.time枚举名为AMPM_OF_DAY.@assylias是的,这太可怕了。嗯,…您还可以给出使用
LocalTime
的解决方案,以及您当前的解决方案。要获得PM,有没有比检查是否在中午之前更好的方法?