Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 上周日期自日期()_Java_Date - Fatal编程技术网

Java 上周日期自日期()

Java 上周日期自日期(),java,date,Java,Date,目标:我想使用Date()将接下来12周的一周的最后一天(星期日)分成单独的字符串 我有下面这给我正确的日期格式。我只是需要关于实现我的目标的最佳解决方案的建议 DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy"); Date date = new Date(0); System.out.println(dateFormat.format(date)); Java的日期系统让我感到困惑,但我认为您希望这样

目标:我想使用Date()将接下来12周的一周的最后一天(星期日)分成单独的字符串

我有下面这给我正确的日期格式。我只是需要关于实现我的目标的最佳解决方案的建议

    DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
    Date date = new Date(0);
    System.out.println(dateFormat.format(date)); 

Java的日期系统让我感到困惑,但我认为您希望这样做:

1) 与其约会,不如做一个格雷戈里安日历

2) Calendar.set(Calendar.DAY\u OF_WEEK,Calendar.SUNDAY)获取本周星期日的日期


3) 在for循环中,将7天添加到日历中12次。在每个循环中执行一些操作(例如,使用getTime()从GregorianCalendar获取日期)

Java的日期系统让我感到困惑,但我认为您希望这样做:

1) 与其约会,不如做一个格雷戈里安日历

2) Calendar.set(Calendar.DAY\u OF_WEEK,Calendar.SUNDAY)获取本周星期日的日期

3) 在for循环中,将7天添加到日历中12次。对每个循环执行一些操作(例如,使用getTime()从GregorianCalendar获取日期)

尝试

    GregorianCalendar c = new GregorianCalendar();
    for (int i = 0; i < 12;) {
        c.add(Calendar.DATE, 1);
        if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
            System.out.println(DateFormat.getDateInstance().format(c.getTime()));
            i++;
        }
    }
GregorianCalendar c=新的GregorianCalendar();
对于(int i=0;i<12;){
c、 添加(日历日期,1);
如果(c.get(日历.星期日)=日历.星期日){
System.out.println(DateFormat.getDateInstance().format(c.getTime());
i++;
}
}
试试看

GregorianCalendar c=新的GregorianCalendar();
对于(int i=0;i<12;){
c、 添加(日历日期,1);
如果(c.get(日历.星期日)=日历.星期日){
System.out.println(DateFormat.getDateInstance().format(c.getTime());
i++;
}
}

首先,一周的最后一天并不总是与星期天相同,因为它取决于您使用的区域设置

如果您使用的是Java 8,那么解决方案非常简单:

LocalDate firstJanuary = LocalDate.parse("01/01/2015",
                           DateTimeFormatter.ofPattern("MM/dd/yyyy"));

//last day of the week
TemporalField fieldUS = WeekFields.of(Locale.US).dayOfWeek();
LocalDate lastDayOfWeek = firstJanuary.with(fieldUS,7);
System.out.println(lastDayOfWeek);

//sunday
LocalDate sunday = firstJanuary.with(DayOfWeek.SUNDAY);
System.out.println(sunday);
要重复到几周后,只需使用:

sunday.plusWeeks(1);

首先,一周的最后一天并不总是与星期天相同,因为它取决于您使用的区域设置

如果您使用的是Java 8,那么解决方案非常简单:

LocalDate firstJanuary = LocalDate.parse("01/01/2015",
                           DateTimeFormatter.ofPattern("MM/dd/yyyy"));

//last day of the week
TemporalField fieldUS = WeekFields.of(Locale.US).dayOfWeek();
LocalDate lastDayOfWeek = firstJanuary.with(fieldUS,7);
System.out.println(lastDayOfWeek);

//sunday
LocalDate sunday = firstJanuary.with(DayOfWeek.SUNDAY);
System.out.println(sunday);
要重复到几周后,只需使用:

sunday.plusWeeks(1);
tl;博士 java.time 现代方法使用java.time类

今天 时区对于确定日期至关重要。在任何一个特定的时刻,世界各地的日期都因地区而异。例如,中午夜后几分钟是新的一天,而中仍然是“昨天”

大陆/地区
的格式指定,例如,或
太平洋/奥克兰
。切勿使用3-4个字母的伪时区,如
EST
IST
,因为它们不是真正的时区,不是标准化的,甚至不是唯一的(!)

该类表示一个仅限日期的值,不包含一天中的时间和时区

LocalDate today = LocalDate.now( z );
星期几 要查找今天当天或之后的下一个星期日,请使用类中的实现

收集 收集一打这样连续的日期

int countWeeks = 12 ;
List< LocalDate > sundays = new ArrayList<>( 12 ) ;
for( int i = 0 , i < countWeeks , i ++ ) {
    sundays.add( nextOrSameSunday.plusWeeks( i ) ) ;  // + 0, + 1, + 2, … , + 11.
}

关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

  • ,及以后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 该项目专门为Android采用了ThreeTen Backport(如上所述)
该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,如、、和。

tl;博士 java.time 现代方法使用java.time类

今天 时区对于确定日期至关重要。在任何一个特定的时刻,世界各地的日期都因地区而异。例如,中午夜后几分钟是新的一天,而中仍然是“昨天”

大陆/地区
的格式指定,例如,或
太平洋/奥克兰
。切勿使用3-4个字母的伪时区,如
EST
IST
,因为它们不是真正的时区,不是标准化的,甚至不是唯一的(!)

该类表示一个仅限日期的值,不包含一天中的时间和时区

LocalDate today = LocalDate.now( z );
星期几 要查找今天当天或之后的下一个星期日,请使用类中的实现

收集 收集一打这样连续的日期

int countWeeks = 12 ;
List< LocalDate > sundays = new ArrayList<>( 12 ) ;
for( int i = 0 , i < countWeeks , i ++ ) {
    sundays.add( nextOrSameSunday.plusWeeks( i ) ) ;  // + 0, + 1, + 2, … , + 11.
}

关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

  • ,及以后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 该项目专门为Android采用了ThreeTen Backport(如上所述)

该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,如、、和。

@Todd您的答案出了什么问题。这正是我要找的。仅供参考,托德删除了。无论如何,这个答案现在已经过时了。现在使用java.time类更容易了。“看,”托德说