如何获得给定日期Java

问题描述 投票:0回答:5
我试图在给定日期获得一周的日期,我给出了为什么这个问题不重复的解释,请在评论前阅读。

您可以尝试以下方式,
Calendar cal = Calendar.getInstance();
//cal.setTime(new Date());//Set specific Date if you want to

for(int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++) {
    cal.set(Calendar.DAY_OF_WEEK, i);
    System.out.println(cal.getTime());//Returns Date
}

输出
java date
5个回答
13
投票

Sun Jul 12 08:12:38 IST 2015 Mon Jul 13 08:12:38 IST 2015 Tue Jul 14 08:12:38 IST 2015 Wed Jul 15 08:12:38 IST 2015 Thu Jul 16 08:12:38 IST 2015 Fri Jul 17 08:12:38 IST 2015 Sat Jul 18 08:12:38 IST 2015
    

Calendar calendar = Calendar.getInstance(); int offset = calendar.get(Calendar.DAY_OF_WEEK) - 1; calendar.add(Calendar.DATE, -offset); for(int i = 0; i < 7; i++){ System.out.println(calendar.getTime()); calendar.add(Calendar.DATE, 1); }

PUREJAVA 8 / JAVA.TIME WAY
基于this
和this

4
投票
public static List<LocalDate> datesOfWeekDate(LocalDate date) {
    LocalDate monday = date
            .with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));

    return IntStream.range(0, 7).mapToObj(monday::plusDays).collect(toList());
}

4
投票
一周中的所有日子

public static List<LocalDateTime> GetListOfTheWeekForDate(Date date){ List<LocalDateTime> listOfWeek = new ArrayList<>(); Calendar cal = Calendar.getInstance(); cal.setTime(date); for(int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++) { cal.set(Calendar.DAY_OF_WEEK, i); TimeZone tz = cal.getTimeZone(); ZoneId zoneId = tz.toZoneId(); LocalDateTime localDateTime = LocalDateTime.ofInstant(cal.toInstant(), zoneId); listOfWeek.add(localDateTime); } return listOfWeek; }

java.time

在2014年3月,Java 8推出了现代的日期API,该API取代了Error prone legacy
java.time

0
投票
。任何新代码都应使用

java.util

api.
一周的第一天是环境敏感

0
投票

ISO-8601
标准,其次是欧洲大部分地区,定义了一个星期从星期一开始。但是,在美国,
a周从周日开始。

使用

java.time

api
solution 您可以使用
java.time
找到一个星期的第一天(一个实例)。然后将其与
locale

一起获取给定日期一周的第一个日期。

demo

Locale 输出

WeekFields.of(locale).getFirstDayOfWeek()

在Ideone上尝试它

了解更多有关现代日期API的

trail:datetime
.
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.