请教关于 Java 日期转换的问题

2021-10-25 17:59:34 +08:00
 xiaojianbang

请教大佬们一个关于 java 日期转换的一个问题;
需求:提供一个时间戳,根据时间戳解析出年、月、半年、周、日;
如果时间戳代表含义为月;
a: 需要生成出当前时间戳所在月全部天数的时间戳,比如时间戳时间为 2021-10-01 ,则生成 10 月份全部 31 天(自动判断 28 、30 、31 天);
b: 需要生成当前时间戳所在月处于第几周,并补全所在月全部的全部周期(如果:当前所在月为第 21 周、则补全这个月内的 22 、23 、24 周的时间戳)

java 是否有关于两个日期内的相对增量计算 api 呢,或者有什么比较好用的日期库使用。

877 次点击
所在节点   科技
5 条回复
yidinghe
2021-10-25 18:00:45 +08:00
JDK 自带 API 足够了
lack006
2021-10-25 18:22:59 +08:00
aguesuka
2021-10-25 18:41:32 +08:00
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.temporal.WeekFields;
import java.util.List;
import java.util.stream.IntStream;

class Scratch {

public static void main(String[] args) {
// 问题 a, 需要生成出当前时间戳所在月全部天数的时间戳
System.out.println(daysOfMonth(YearMonth.now()));
// 问题 b 也许是个 XY 问题. 这里给出制定某天, 给出这天是第几周
System.out.println(getISOWeekOfYear(LocalDate.now()));
}

public static List<LocalDate> daysOfMonth(YearMonth yearMonth) {
return IntStream.rangeClosed(1, yearMonth.lengthOfMonth())
.mapToObj(yearMonth::atDay)
.toList();
}

public static int getISOWeekOfYear(LocalDate day) {
return day.get(WeekFields.ISO.weekOfYear());
}
}
wolfie
2021-10-25 18:48:08 +08:00
Hutool 用了就离不开
xiaojianbang
2021-10-25 23:23:20 +08:00
@aguesuka @lack006 @wolfie @yidinghe 感谢感谢,明天我去研究下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/810434

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX