我有几个事件的日期,以毫秒 [1] 表示,我想知道哪些事件在当前周和当月,但我无法弄清楚如何获得第一天(日/月/年) )运行周并将其转换为毫秒,同一个月的第一天.
[1]Since January 1, 1970, 00:00:00 GMT
Run Code Online (Sandbox Code Playgroud) 最简单的方法:
String[] namesOfDays = new String[7] {
"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"
};
Run Code Online (Sandbox Code Playgroud)
此方法不使用Locale.因此,如果系统的语言不是英语,则此方法无法正常工作.
使用Joda时间,我们可以这样做:
String[] namesOfDays = new String[7];
LocalDate now = new LocalDate();
for (int i=0; i<7; i++) {
/* DateTimeConstants.MONDAY = 1, TUESDAY = 2, ..., SUNDAY = 7 */
namesOfDays[i] = now.withDayOfWeek((DateTimeConstants.SUNDAY + i - 1) % 7 + 1)
.dayOfWeek().getAsShortText();
}
Run Code Online (Sandbox Code Playgroud)
但是,此方法使用今天的日期和日历计算,这对于最终目的而言是无用的.而且,它有点复杂.
是否有一个简单的方法来得到这样的字符串"Sun","Mon",...,"Sat"用系统的默认语言环境?
我有两个整数:year和week.我想LocalDateTime从这两个值构造一个,其中日期代表特定年份中特定周的第一天.
我已经尝试过了:
LocalDateTime ldt = LocalDateTime.of(year, 1, 1, 0, 0).plusWeeks(week-1);
Run Code Online (Sandbox Code Playgroud)
这没有给出正确的结果,因为一年的第一天并不总是该年第一周的开始.我似乎无法弄清楚如何获得第一周的第一天.
使用Java 8中的Date和Time API有没有简单的方法呢?
注:我知道我还可以创建一个给定的答案一种解决方法在这里,但这似乎牵强.也许不是,如果是的话,请告诉我!
我有个约会,我需要知道约会之前的最后一周和最后一个月。
例如,
在2018年7月15日,它的最后一周是从7月2日到7月8日。它的最后一个月是6月1日到6月30日。
在2018年7月16日,它的最后一周是从7月9日到7月15日。它的最后一个月是6月1日到6月30日。
在2018年7月17日,它的最后一周是从7月9日到7月15日。它的最后一个月是6月1日到6月30日。
它与基于Java-8的本地日期的第一个星期的第一天获取日期不同,我的问题是上周或上个月获取。