从文本中获取日期和时间输入

时间:2016-06-14 07:42:59

标签: java string date

所以,我一直在寻找这个,但我找不到答案。这就是为什么我在这里问。我的问题是这样的: 使用Swing,我创建了一个应用程序,它将从JTextArea获取文本,然后将其保存在.txt文档中。此外,它还将节省2个文件(也作为.txt文件)。其中一个是日期(即2016.03.05),另一个是时间(即09:50 AM)。我需要的是将日期和时间与系统日期和时间进行比较,并检查它们是否匹配。我只需要一种方法来完成这项工作,因为它们存储为字符串,将它们与系统日期和时间进行比较的好方法。 我认为应该是这样的:

if(date in date file is equal to system date) {/do stuff}

我不会寻找勺子喂食,但我需要有一个良好而有效的方法来做到这一点。

2 个答案:

答案 0 :(得分:1)

让我们假装操作系统已从文件中读取日期/时间字符串。

String date = "2016.03.05";
String time = "09:50 AM";

我们希望将其与"系统时间进行比较"那怎么样。

LocalDateTime now = LocalDateTime.now();

现在我们有一个日期和时间,我们想将它与文件中的值进行比较。一种方法是从日期字符串创建LocalDate对象。

DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");
LocalDate localDate = LocalDate.parse(date, dateFormatter);    
if(now.toLocaleDate().equals(localDate)){
    //date is equal so now what?
}

我们可以在当地时间做同样的事情。

DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("h:m a");
LocalTime localTime = LocalTime.parse(time, timeFormatter);
if(now.toLocalTime().equals(localTime)){
   //do stuff if the time is equal (which it will rarely be)
}

答案 1 :(得分:0)

如果您使用的是java 8,那么有一篇关于如何将String解析为Date的非常好的文章。一旦将String解析为LocalDateTime类,就可以运行:

if(LocalDateTime.now().equals(yourTime)) {
  //your code
}

看看它们是否匹配。 请在这里阅读有关java.time包的https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html

这是一篇关于日期字符串解析的文章:https://www.linkedin.com/pulse/java-8-javatime-package-parsing-any-string-date-michael-gantman?trk=pulse_spock-articles