有没有办法将ISO8601日期与Java进行比较?比如,知道字符串日期是否是良好的格式,知道月份是否为负数,以及
我还在搜索如何知道互联网上是否有课程可以比较两个ISO8601日期?比如,如果我有:2000-12-12和1999-05-06。我如何比较这两个日期,使之在年、月和日之间有准确的差异?
一些关于如何在Java中解析和比较日期的示例(8)。您可以使用java。时间LocalDate
课程。下面是一些例子:
try {
LocalDate.of(2000, 13, 12);
} catch (DateTimeException e) {
System.out.println("It seems the date 12/13/2000 is invalid?");
}
// If you have only a string...
LocalDate.parse("2000-03-10");
System.out.println("I managed to parse the date from a string");
try {
LocalDate.of(2000, 2, 30);
} catch (DateTimeException e) {
System.out.println("It seems the date 30/02/2000 is invalid?");
}
var date1 = LocalDate.of(2000, 12, 12);
var date2 = LocalDate.of(1999, 5, 6);
if (date1.isBefore(date2)) {
System.out.println("Date 1 is before date 2");
} else if (date1.isEqual(date2)) {
System.out.println("Date 1 is equal to date 2");
} else {
System.out.println("Date 1 is after date 2");
}
var period = Period.between(date2, date1);
System.out.println("Difference between date 1 and date 2 is: ");
System.out.print(period.getYears() + " years, ");
System.out.print(period.getMonths() + " months, ");
System.out.print(period.getDays() + " days");
这将打印:
It seems the date 12/13/2000 is invalid?
I managed to parse the date from a string
It seems the date 30/02/2000 is invalid?
Date 1 is after date 2
Difference between date 1 and date 2 is:
1 years, 7 months, 6 days
如果还需要处理时间,可以使用LocalDateTime
类。如果你尝试手动操作,这两个类都会为你节省大量时间!
您还可以使用ChronoUnit
类计算以天为单位的距离,只需执行以下操作:
ChronoUnit.DAYS.between(date1, date2);
ChronoUnit.MONTHS.between(date1, date2);
ChronoUnit.YEARS.between(date1, date2);
请在此处查看ChronoUnit方法:https://docs.oracle.com/javase/8/docs/api/java/time/temporal/ChronoUnit.html
如果您使用的是Java 8或更高版本,请使用Java中的工具。时间
套餐:
LocalDate date1 = LocalDate.parse("1999-05-06"),
date2 = LocalDate.parse("2000-12-12");
Period period = Period.between(date1, date2);
// Prints "1 years, 7 months and 6 days"
System.out.printf("%d years, %d months and %d days\n", period.getYears(),
period.getMonths(), period.getDays());
您需要的所有信息都可以从LocalDate
类中的方法中提取。如果字符串的格式无效,LocalDate::parse
方法将抛出一个异常,指示出了什么问题。
有没有办法将ISO8601日期与Java进行比较?比如,知道字符串日期是否是良好的格式,知道月份是否为负数,以及
获取一个LocalDate实例,将年、月和月中的哪一天作为参数传递到LocalDate.of中的一个try-get
块中。如果其中任何一个无效,DateTimeExctive
将被抛出表示相同。
import java.time.DateTimeException;
import java.time.LocalDate;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int year, month, dayOfMonth;
LocalDate date;
System.out.print("Enter the year, month and day separated by space: ");
year = scanner.nextInt();
month = scanner.nextInt();
dayOfMonth = scanner.nextInt();
try {
date = LocalDate.of(year, month, dayOfMonth);
System.out.println("The date in ISO 8601 format is " + date);
} catch (DateTimeException e) {
System.out.println(e.getMessage());
}
}
}
示例运行:
Enter the year, month and day separated by space: 2020 2 30
Invalid date 'FEBRUARY 30'
另一个示例运行:
Enter the year, month and day separated by space: 2020 2 29
The date in ISO 8601 format is 2020-02-29
我还在搜索如何知道互联网上是否有课程可以比较两个ISO8601日期?比如,如果我有:2000-12-12和1999-05-06。我如何比较这两个日期,使之在年、月和日之间有准确的差异?
使用LocalDate#till获取java。时间期间
从中可以获得年、月和日。
import java.time.LocalDate;
import java.time.Period;
public class Main {
public static void main(String[] args) {
String dateStr1 = "1999-05-06";
String dateStr2 = "2000-12-12";
LocalDate date1 = LocalDate.parse(dateStr1);
LocalDate date2 = LocalDate.parse(dateStr2);
Period period = date1.until(date2);
System.out.printf("There are %d years, %d months and %d days between %s and %s", period.getYears(),
period.getMonths(), period.getDays(), dateStr1, dateStr2);
}
}
输出:
There are 1 years, 7 months and 6 days between 1999-05-06 and 2000-12-12
问题内容: 我正在使用bootstrap-datetimepicker和ISO8601 datetime格式,如其选项部分所述 在我的控制器中 它以(console.log)将数据发送到后端 并保存为数据库 在我的模板中 我在HTML上看到的输出为 但是根据Angular doc,它应该用于格式 我想念的是什么? 问题答案: 现在,我已经创建了一个过滤器 作为依赖项添加为 并用作 并将日期显示为
我想问的是,是否有一种首选的方法来根据显示格式比较两个日期对象?我可以实现这个逻辑,我只是好奇是否已经存在一些实现。 更新 我有两个日期对象: null
我有两个字符串格式的日期:说,格式为。比较日期1和日期2的相等性的最佳方法是什么?我不关心时间,只关心日、年、月。我应该将它们转换为即时并进行比较吗?
问题内容: 如何转换此 格式 ( ISO8601格式 ): 2014-03-13T09:05:50.240Z 为此( MySQL DATE格式 ): 2014-03-13 在PHP中? 问题答案: 尝试这个 完整的日期功能文档可以在这里找到:http : //php.net/manual/en/function.date.php PHP函数“ strtotime”不执行任何其他操作,然后将您的时间
我有以下几点: 上面的代码不起作用。以上问题还有其他解决方案吗? 格式化日期按我在哪里可以找到留档格式化日期在JavaScript?也dint为我工作。
我想在Mongo和Spring中获取结果bw两个日期,但它显示解析异常。 如果我将like date作为字符串传递,则不会有结果。如何比较spring和Mongo应用程序中的日期。 我的收藏: