如何从具有 2 个字符输出的日期字符串中获取周数
How to get the week number from a date string with 2 character output
我可以使用下面的代码得到输出 weekNumber: Int = 1 。但我的用例需要输出为
周数:字符串= 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
您可以将 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
我可以使用下面的代码得到输出 weekNumber: Int = 1 。但我的用例需要输出为 周数:字符串= 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
您可以将 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