Формат даты Scala - PullRequest
       5

Формат даты Scala

0 голосов
/ 29 августа 2018

У меня есть data_date, который дает формат ггггммдд:

beginDate = Some(LocalDate.of(startYearMonthDay(0), startYearMonthDay(1), 
startYearMonthDay(2)))
var Date = beginDate.get
.......

val data_date = Date.toString().replace("-", "")

Это даст мне результат '20180202' однако мне нужно, чтобы результат был 201802 (ггггмм) для моего варианта использования. Я не хочу менять значение beginDate, я просто хочу изменить значение data_date, чтобы оно соответствовало моему сценарию использования, как мне это сделать? можно ли использовать функцию разделения? Спасибо!

Ответы [ 3 ]

0 голосов
/ 29 августа 2018

Путь к нему с DateTimeFormatter.

val formatter = DateTimeFormatter.ofPattern("YMM")
val data_date = Date.format(foramatter)

Я рекомендую вам прочитать DateTimeFormatter документы, чтобы вы могли форматировать дату так, как вы хотите.

0 голосов
/ 29 августа 2018

Из фрагмента кода не ясно, что вы используете Spark, но теги подразумевают это, поэтому я дам ответ, используя встроенные функции Spark. Предположим, ваш DataFrame называется df со столбцом даты my_date_column. Затем вы можете просто использовать date_format

scala> import org.apache.spark.sql.functions.date_format
import org.apache.spark.sql.functions.date_format

scala> df.withColumn("my_new_date_column", date_format($"my_date_column", "YYYYMM")).
     | select($"my_new_date_column").limit(1).show

// for example:
+------------------+
|my_new_date_column|
+------------------+
|            201808|
+------------------+
0 голосов
/ 29 августа 2018

Вы можете сделать это, взяв только первые 6 символов полученной строки. т.е.

val s = "20180202"
s.substring(0, 6) // returns "201802"
...