如果我在这里混淆了任何与ISO日期相关的术语,请提前道歉。
ZonedDateTime date = ZonedDateTime.now();
WeekFields weekFields = WeekFields.of(Locale.getDefault());
int weekNumber = date.get(weekFields.weekOfWeekBasedYear());
您可以构造一个日期,并将其调整为一年中第一周的第一天,方法如下:
int year = 2016;
WeekFields weekFields = WeekFields.ISO;
LocalDate date = LocalDate.now().with(weekFields.weekBasedYear(), year)
.with(weekFields.weekOfWeekBasedYear(), 1)
.with(ChronoField.DAY_OF_WEEK, 1);
由于JodaStephen的注释,另一种说法是使用isoFields
类。
LocalDate date = LocalDate.now().with(IsoFields.WEEK_BASED_YEAR, year)
.with(IsoFields.WEEK_OF_WEEK_BASED_YEAR, 1)
.with(ChronoField.DAY_OF_WEEK, 1);
WeekFields.ISO
表示周的ISO定义:
>
weekbasedyear()
表示基于周的年份字段:
这代表了一年的概念,其中周从固定的一周中的一天开始,如星期一,每个周都正好属于一年。
在这种情况下,我们希望将其设置为通缉年。
然后,通过调用localdate.plusweeks(1)
,使用这样的日期,实际上可以遍历一年中的所有周。问题是:您需要迭代多少次?一年中可以有超过52周的时间。以周为基础的一年中有52周或53周。
您可以通过以下方式检索周数。此调用rangerefinedby(date)
以检索给定日期的年份周字段的有效值,并获取其最大值。
long maxWeekOfYear = weekFields.weekOfWeekBasedYear().rangeRefinedBy(date).getMaximum();
我有一个文本字段列表,每个字段都有相同的类名。这是html代码: 每个文本字段都有相同的类名,我试图通过使用Selenium中的sendKeys方法向每个文本字段发送键来自动化这些字段。我使用JavaScript(chai,mocha,node)来运行我的自动化。 这就是我试过的。我尝试通过className使用findElements,遍历className,然后填充每个文本字段: 但它失败,出
我想知道,如何在Java8中使用流API迭代多级列表 根据Java8,我应该做如下的操作 我想要流利地做这件事(使用内部迭代)。任何解释都会很感激。
我有两份清单: 列表1: Object1(name1, id1) 列表2: Object2(name2, id2) 给定list1的大小与list2相同 我想迭代list2,如果list2的name2不为null,则更新list1的name1。 以下是使用旧java的代码: 用java实现这一点的最佳方法是什么。util。流动
Java 8之前版本
我正在寻找一种用Java8流模拟以下行为的方法。给定一个年份流,对它们进行排序,以便输出前10个值,这样,在输出一年之后,该值将减少,并且迭代重新开始再一次resorting: 如果我输入2005年、2020年、2000年、1967年和2018年,我期望以10为限得出以下结果: 我使用的测试是: 但看起来sorted()一点也不懒。整个排序在beggining处完成一次,因此在任何进一步操作之前要