Scala В Прошлом Году

#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 утверждения? Также было бы полезно устранить опечатки в коде.