我有一个字符串的战利品,你在我的例子中看到要解析的格式。我试着做出今天的决定。
我的问题是,时间几乎就在那里,我只需要比较那个日期。
接下来我想检查时间是否介于两个时间戳“HH:mm:ss”之间.after和。之前但是有问题,日期几乎就在那里......
主要问题是 - 如何在日期和时间中拆分解析后的格式,以自己的方式处理每个格式......
很多PS:我在Android工作室......
String dtStart = "2016-05-23 07:24:59";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
if (new Date().equals(format.parse(dtStart)) ) System.out.println("true");
else System.out.println("false");
list.add(new LatLng(lat, lng));
} catch (java.text.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:8)
使用Java 8及更高版本中内置的java.time类。
许多功能已经被移植到Java 6& ThreeTen-Backport中的7,并在ThreeTen-ABP中进一步适应Android。
String dateToParse = "2016-05-23 07:24:59";
LocalDateTime dateTime = LocalDateTime.parse(dateToParse, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDate localDate = dateTime.toLocalDate();
LocalTime localTime = dateTime.toLocalTime();
// Compare here to your date & time
答案 1 :(得分:2)
您可以使用SimpleDateFormat
这样轻松地实现它:
//Houres - seconds
SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
//Years - days
Date hoursAndMinutes = timeFormat.parse(dtStart);
Date yearsMonthsDays = dateFormat.parse(dtStart);
这样,您只能获得日期的小时,分钟和秒。 然后,你可以只为年份和月份做同样的事情,然后比较它。
答案 2 :(得分:1)
为了完成,以下是使用Joda日期时间库以及toLocalDate()
和toLocalTime()
方法执行此操作的方法。
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
DateTime today = new DateTime();
DateTime start = formatter.parseDateTime(dtStart);
if (today.toLocalDate().compareTo(start.toLocalDate()) != 0) {
System.out.println("true");
} else {
System.out.println("false");
}
if (today.toLocalTime().compareTo(start.toLocalTime()) > 0) {
...
}
答案 3 :(得分:0)
我在这里找到了我的解决方案:https://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html
String dtStart = "2016/05/23 07:24:59";
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
try {
Date dtStartOK = format.parse(dtStart);
String stringDate = DateFormat.getDateTimeInstance().format(dtStartOK);
System.out.println(stringDate);
System.out.println(DateFormat.getDateInstance().format(dtStartOK));
System.out.println(DateFormat.getTimeInstance().format(dtStartOK));
} catch (ParseException e) {
//Handle exception here, most of the time you will just log it.
e.printStackTrace();
}
给了我:
23.05.2016 07:24:59
2016年5月23日
7时24分59秒