- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在Java中获取开始和结束日期,我在JCombobox
中列出了从一月到十二月的月份列表,并在JCombobox
中显示了年份。
首先,我已将 String
月份转换为月份数字并使用以下代码:
if(month_sands.getSelectedIndex() != -1){
int monthnumber = month_sands.getSelectedIndex() + 1;
if(monthnumber>=9)
{
month=String.valueOf(monthnumber);
}else
{
month="0"+String.valueOf(monthnumber);
}
}
后来我创建了一个字符串dateString
来使用LocalDate
获取所选月份的第一个和最后一个日期,一切都工作正常,但是当我选择二月时和 2017 年它给了我异常 java.time.DateTimeException: Invalid date 'February 29' as '2017' is not a闰年
获取第一个和最后一个日期的代码是
try {
String dateString = year_sands.getSelectedItem().toString()+"-"+month+"-"+"01";
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.US);
LocalDate date = LocalDate.parse(dateString, dateFormat);
LocalDate startDate=date.withDayOfMonth(1);
LocalDate endDate = date.withDayOfMonth(date.getMonth().maxLength());
start_date=startDate.toString();
end_date=endDate.toString();
System.out.println(start_date);
System.out.println(end_date);
} catch (Exception e) {
e.printStackTrace();
}
我不知道做错了什么,请有人帮助我
最佳答案
发生这种情况是因为您在这一行中使用了 maxLength()
:
LocalDate endDate = date.withDayOfMonth(date.getMonth().maxLength());
方法 maxLength()
返回本月的最大长度(以天为单位),如 API documentation说。二月确实最多有 29 天(只是 2017 年没有,但这是一般的二月,而不是任何特定年份的二月!)。
这应该可行,因为它考虑了特定年份月份的长度:
LocalDate endDate = date.withDayOfMonth(date.lengthOfMonth());
关于java.time.DateTimeException : Invalid date 'February 29' as '2017' is not a leap year Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43776022/
我正在研究契约(Contract)的日计数约定,并且在 30/360 约定之一中,如果日期是 2 月 28 日/29 日,我需要将其四舍五入到 30 日。由于我使用的是 LocalDate 类,它会引
我的代码运行良好。今天突然开始出现这个异常 - org.threeten.bp.DateTimeException: Field DayOfMonth cannot be printed as the
当我运行第一段时,它完全正常并生成输出。但在第二种情况下,当我运行此段 2 时,它会生成 DateTimeException : Unable to extract ZoneId from tempo
今天我发现了 Java 的 8 Hijrah 日期,我正在尝试将 Hijri 日期转换为 Gregorian 日期;我一直收到此错误: java.time.DateTimeException: Hij
根据documentation for Instant ,最小 Instant 为 -1000000000-01-01T00:00Z,因此年份为 -1000000000,时区为 UTC。所以我希望这个
这个我不是很清楚。出于某种原因,当我尝试格式化 LocalDateTime使用 DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG).with
我在某些摩托罗拉设备上有一个非常奇怪的行为,其中 LocalDateTime.now() 返回 0000-00-00T00:00:00.0 和 ThreeTenABP . 代码如下: @Overrid
我想按城市 UTC 和 GMT 时间获取不带下划线。首先,我写的内容是为了获取区域 ID: List utc = new ArrayList<>(ZoneId.getAvailableZoneIds
在 Java 8 Date Time API 中,我将使用 DateTimeFormatter API 打印时间,如下所示: DateTimeFormatter timeFormatter = Dat
我尝试在Java中获取开始和结束日期,我在JCombobox中列出了从一月到十二月的月份列表,并在JCombobox中显示了年份。 首先,我已将 String 月份转换为月份数字并使用以下代码: if
我有一个使用 CodePipeline 部署在 AWS Elastic Beanstalk 上的 Spring Boot 多模块项目。 我的配置文件:web: java -jarparent/modu
我在签署 Ionic android apk 时遇到此错误,我在 Kubuntu 17.04 上,使用 Ionic 3,安装了 java 8 我得到的错误: Enter Passphrase for
我试图将 datePicker 中的日期作为字符串保存到 mysql 表中。我使用 Javafx 场景生成器创建了 datePicker,但是当我尝试以字符串格式保存日期时,它返回此错误: java.
我正在像这样解析日期:"Sat, 30 Jan 2016 00:03:00 +0300" 但在某些日期它抛出这个异常: Caused by: java.time.DateTimeException:
我正在研究地理围栏,因此我正在使用 Google 依赖项 "android-maps-utils"和"geopackage-android-map" 我在系统中安装了这些 jar 并在 pom.xml
我是一名优秀的程序员,十分优秀!