Tag: java时间

使用java.time生成随机LocalDate

我正在编写一些代码,用随机数据填充MySQL数据库以进行测试。 我需要填充一个DATE列,其中包含1970-2015的随机日期。 这是相关的方法: public Date dateGenerator() throws Exception { Random ry = new Random(); Random rm = new Random(); Random rd = new Random(); int year = 1969 + ry.nextInt(2015-1969+1); int month = 1 + rm.nextInt(12); int day = 1 + rm.nextInt(31); if (month==2 && day>28){ day = day – 3; } else { if((month%2==0 […]

如何在Java 8中向LocalDate添加天数时跳过周末?

这里的其他答案指的是Joda API。 我想用java.time 。 假设今天的日期是2015年11月26日 – 星期四,当我添加2个工作日时,我希望结果为2015年11月30日星期一。 我正在开发自己的实现,但如果已经存在的话会很棒! 编辑: 除了循环之外,有没有办法做到这一点? 我试图推导出如下函数: Y = f(X1,X2) where Y is actual number of days to add, X1 is number of business days to add, X2 is day of the week (1-Monday to 7-Sunday) 然后给出X1和X2 (从日期的星期几得到),我们可以找到Y然后使用LocalDate plusDays()方法。 到目前为止我还没有得到它,它不一致。 任何人都可以确认循环,直到添加所需的工作日数是唯一的方法吗?

DateTimeFormatter自动更正无效(语法上可能)的日历日期

当您尝试超出可能范围的日期时,Java DateTimeFormatter会引发exception,例如: DateTimeFormatter dtf = DateTimeFormatter.ofPattern(“M/d/yyyy”); String dateString = “12/32/2015”; LocalDate ld = LocalDate.parse(dateString, dtf); 将抛出: Exception in thread “main” java.time.format.DateTimeParseException: Text ’12/32/2015′ could not be parsed: Invalid value for DayOfMonth (valid values 1 – 28/31): 32 但是当我输入一个无效的日历日期时,它的标准在语法上仍然可行,它会将其自动更正为有效日期,例如: DateTimeFormatter dtf = DateTimeFormatter.ofPattern(“M/d/yyyy”); String dateString = “2/31/2015”; LocalDate ld = LocalDate.parse(dateString, dtf); 它成功解析但自动更正到2015-02-28 。 我不希望这种行为,我希望它在日期不是有效的日历日期时仍然抛出exception。 是否有可以为此设置的内置选项,或者我是否真的必须尝试手动筛选出这些实例?

如何在java.time中处理完整的句号?

java.time中的Period类仅处理面向日期的药水:年,月,日。 时间部分怎么样:小时,分钟,秒? 我们如何解析和生成ISO 8601 , PnYnMnDTnHnMnS定义的完整周期的字符串表示? 例如,一天半: P1DT12H 。 学年是9个月, P9M 。 P17D ,每年我都会有两周P17D 3天的假期。 客户占用了酒店房间2天和17个半小时, P2DT17H30M 。 Joda-Time中的Period类处理完整时段。 为什么不在java.time? 还有其他一些机制吗?

如何在java中获得前一个月和几年?

如何在java中找出上个月和它的年份 例如,如果今天是2012年10月10日,结果应该是月= 9和年= 2012,如果今天是2013年1月10日,结果应该是月= 12和年= 2012