我装了这个
public static boolean isFirstDayOfMonth(String format, String value) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date date = null;
try {
date = sdf.parse(value);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
return dayOfMonth == 1;
}
测试并返回true:
boolean actual = CommonUtil.isFirstDayOfMonth("yyyy-MM-dd", "2021-02-29");
assertTrue(actual);
我发现SimpleDateFormat将日期转换为2021的3月1日,尽管2021的2月不是29日。如果我在2021-02-30中通过,这是无效的,但它返回正确的结果。
java.time.LocalDate.parse( "2021-02-29" )
…
catch ( DateTimeParseException e ) // Thrown for invalid inputs
您正在使用多年前被java取代的糟糕的日期时间类。JSR 310中定义的时间类。
默认情况下,java。时间LocalDate类拒绝分析无效的输入。分析异常陷阱。
try {
LocalDate ld = LocalDate.parse( "2021-02-29" ) ;
System.out.println( ld ) ;
} catch ( DateTimeParseException e ) {
// … handle invalid input
System.out.println( "Faulty input" ) ;
}
查看此代码在IdeO上实时运行ne.com.
java。Java 8及更高版本内置了时间框架。这些类取代了麻烦的旧遗留日期时间类,如java。util。日期、日历,
要了解更多信息,请参阅Oracle教程。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。
现在处于维护模式的Joda Time项目建议迁移到java。时间类。
您可以交换java。直接使用数据库创建时间对象。使用符合JDBC 4.2或更高版本的JDBC驱动程序。不需要字符串,也不需要java。sql* 类。Hibernate5
从何处获取java。时间课程?
问题内容: 我有一个名为的变量,它具有以下格式的今天的日期:。然后,将其格式化为MySQL的Date类型格式,即。这段代码可以做到: 我要做的是将其恢复为Date类型。我尝试了一些方法,但是它们没有用。主要解决方案是按照其他的问题中所述进行操作](http://codingdict.com/questions/2936),并通过一个小小的mod达到了我想要的功能: 但是它不起作用,因为尝试解析时出
问题内容: 我有字符串格式的日期,我想将其解析为使用日期。 我将其解析为: 但是奇怪的是,如果我传递的是“ 03-08- 201309 hjhkjhk ”或“ 03- 88 -2013”或 43 -88-201378,它不会抛出错误,而是对其进行解析。 为此,我必须编写正则表达式模式以检查日期的输入是否正确。但是为什么会这样呢? 代码: 问题答案: 您应该使用: 我不确定是否可以捕获 到 您想
我有一个带有字符串的数组列表,我想在日期中转换它。在下面的代码中,似乎不能使用“parse”来完成此操作: 但那不起作用。 你能帮帮我吗?
嗨,我正在尝试以YYYY-MM-DD格式解析日期。我正在尝试这个: 但是我得到了错误,我想这是一个解析错误, 0001-01-01 00:00:00 0000 UTC解析时间“2016-01-1”为“2020-12-30”:无法将“-01-01”解析为“0” 我该如何解析它,或者通过其他示例给出一些提示?蒂亚。
我有一个需求,当我把日期从一种格式转换成另一种格式时,我可能会得到一个无法解析的日期异常。下面粘贴了该类的代码
问题内容: 我用来格式化字符串中的日期。但是现在它混合了月份和日期。 我有一个包含的字符串。后 它返回: 我希望它会回来 我怎样才能告诉代码格式是? 作为记录,将按预期解析为。 问题答案: 指定: 在日期格式不明确的情况下(例如,当日期为12或更少时),这将优先使用DD-MM-YYYY格式而不是MM-DD- YYYY。该功能在此处记录。