Как получить номер недели из строки даты с выводом 2 символов - PullRequest
0 голосов
/ 06 апреля 2020

Я могу использовать приведенный ниже код для получения вывода в виде 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

1 Ответ

2 голосов
/ 06 апреля 2020

Вы можете использовать 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

...