java - 查找上个月的第一个和最后一个日期
问题描述
我有一个简单但棘手的代码来编写我以 UTC 时间给出今天的日期字符串的位置。
String s = Instant.now().toString().replaceAll("T.*", "");
我需要找到上个月的第一天和最后一天,并将它们存储在单独的字符串中。关于如何最好地实现它的任何建议?
解决方案
你可以利用TemporalAdjusters
.
如果您不必以字符串开头,请不要。LocalDate
如果可能,请从 a 开始。
如果您必须以字符串开头,则可以将字符串转换s
为 a LocalDate
by parse
:
LocalDate ld = LocalDate.parse(s);
现在我们可以像这样得到月份的开始和结束:
LocalDate startOfMonth = ld.with(TemporalAdjusters.firstDayOfMonth());
LocalDate endOfMonth = ld.with(TemporalAdjusters.lastDayOfMonth());
我建议您在绝对必要之前不要将它们转换为字符串(例如将其显示给用户)。
推荐阅读
- swift - 我的 Swift UI 中的 TextField 对点击和单击无响应,无法输入文本,代码有问题吗?
- r - 在数据框列表中动态设置唯一列名 [R]
- swiftui - SwiftUI 全屏 UIImagePickerController(相机)
- python - 当特定youtuber上传视频时,如何使discord bot在频道中发送消息
- xamarin.forms - 将命令传递给 ContentView 中的按钮
- python-3.x - Python:将二进制转换为十进制
- sql - 动态声明 FROM 要从哪个表名中选择
- python - 将文件作为python模块导入后从文件中删除锁(不卸载!)
- wpf - WPF:用户控件在设计时未在 ContentControl 的 Datatemplate 内显示
- java - 使用 while 循环重新运行程序后,异常方法不起作用