Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.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_String_Parsing_Time - Fatal编程技术网

Java 从字符串获取时间

Java 从字符串获取时间,java,string,parsing,time,Java,String,Parsing,Time,我的Java代码必须从控制台获取字符串“HH:MM”,并需要使用它进行操作。 是否有可能从字符串中解析这样的时间,以便添加,例如,2小时 BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter some time:"); String enteredTime = in.readLine(); // here I want to get time in s

我的Java代码必须从控制台获取字符串“HH:MM”,并需要使用它进行操作。 是否有可能从字符串中解析这样的时间,以便添加,例如,2小时

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

System.out.print("Enter some time:");
String enteredTime = in.readLine(); 
// here I want to get time in some variable   
谢谢

因此,我必须得到三个日期,并定义在其他日期之间是否有三个日期。 我知道我可以在部件上拆分字符串并使用它们,但我喜欢在这种情况下使用简单的操作方法

我找到了很好的解决办法:

SimpleDateFormat parser = new SimpleDateFormat("HH:mm");
Date ten = parser.parse("10:00");
Date eighteen = parser.parse("18:00");

try {
    Date userDate = parser.parse(someOtherDate);
    if (userDate.after(ten) && userDate.before(eighteen)) {
    ...
}
} catch (ParseException e) {
    // Invalid date was entered
}

我知道你想做一些日期算术,比如给日期加上持续时间。那么您肯定应该使用而不是java.util.Date和Calendar


Joda为您提供了周期和持续时间实体以及一个漂亮且可读的API

字符串#split(“:”)在这里可以很好地工作。查看字符串API了解更多信息。您尝试了什么?我脑海中至少会闪现出三件事:java.text.DateFormat、java.text.simpleDataFormat和java.util.Date…我需要得到三次,并定义其他日期之间是否有第三个日期。请尝试[一个好的日期分析器][1][1]:日期还是时间?这是两件不同的事情。请注意,这将给你“1970年1月1日星期四13:47:00”!这很正常,我只需要计算次数,日期可以是任意的谢谢,我知道Joda,但不幸的是,除了Java,我不能使用任何API。
sdf = new java.text.SimpleDateFormat ("HH:mm");
sdf.parse ("13:47");