#scala #date #variables
Вопрос:
Я еще не смог найти ответ на этот вопрос для Scala. Я пытаюсь создать переменную в scala за прошлый год и последние 2 месяца и вернуть ее в YYYY-MM-dd
формате. Вот что я построил. Прямо сейчас вместо переменной, возвращающей ожидаемую дату, отформатированную так, как я запрашиваю переменную, просто возвращает выражение. Есть какие-нибудь мысли о том, как я могу изменить свой код, чтобы представить переменную last_year
с прошлым годом в строковом формате?
val last_year=date_sub(current_date()),365)
val last_2=date_sub(current_date()),60)
desired result: last_year= "2021-03-08"
last_2= "2021-01-08"
Комментарии:
1. вопрос не очень ясен — от чего вы получили
val last_year=date_sub(current_date()),365)
? Это действительно должно показать вам прошлый год ( medium.com/expedia-group-tech/… )2. Да, не знаю почему, но если я сделал println(last_year), он вернулся (). Думаю, у меня есть рабочее решение.
3. Почему «желаемое»
last_year
2021
— это свидание? Итак, как обстоят дела там, где вы находитесь в 2022 году?4. @jwvh просто опечатка 😉 — я бы предположил
Ответ №1:
Вот тот же результат с использованием новой java.time
библиотеки вместо старых и устаревших Calendar
SimpleDate
опций и.
val prev_yr = java.time.LocalDate.now().minusYears(1L).toString
Ответ №2:
Думаю, у меня есть ответ, на случай, если кому-нибудь это понадобится позже:
val cal:Calendar=Canlendar.getInstance()
val format=new SimpleDateFormat("YYYY-MM-dd")
cal.add(Calendar.Date,-365)
val prev_yr:String=format.format(cal.getTime)
println(prev_yr)
Комментарии:
1. Если «кому-нибудь это понадобится позже» , не было бы хорошей идеей включить необходимые
import
утверждения? Также было бы полезно устранить опечатки в коде.