首页 > 解决方案 > 如何从具有 2 个字符输出的日期字符串中获取周数

问题描述

我可以使用以下代码将输出作为weekNumber: Int = 1。但是我的用例需要输出为 weekNumber: String= 01。解决此问题的最佳有效方法应该是什么?

import java.time.format.DateTimeFormatter
import java.time.temporal.WeekFields
import java.util.Locale
import java.time.LocalDate

var dateRangeFrom = "20200101"
var date :java.time.LocalDate = LocalDate.parse(dateRangeFrom,DateTimeFormatter.ofPattern("yyyyMMdd"))

var weekFields :WeekFields =  WeekFields.of(Locale.getDefault());
var weekNumber :Int = date.get(weekFields.weekOfWeekBasedYear());

输出 - weekNumber: Int = 1

标签: javascalasimpledateformat

解决方案


您可以将 DateTimeFormatter 与模式一起使用ww

var weekFormat = DateTimeFormatter.ofPattern("ww");
var weekNumber = weekFormat.format(date);

“w”是一年中的第几周,“ww”是一年中的第几周,有两位数(零填充)。您可以在 API 文档中查看格式化代码列表。 https://docs.oracle.com/javase/10/docs/api/java/time/format/DateTimeFormatter.html


推荐阅读