簡體   English   中英

Scala日期格式

[英]Scala date format

我有一個data_date,其格式為yyyymmdd:

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

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

這將給我一個結果'20180202',但是對於我的用例,我需要結果為201802(yyyymm)。 我不想更改beginDate的值,我只想更改data_date值以適合我的用例,我該怎么做? 我可以使用拆分功能嗎? 謝謝!

從代碼片段中尚不清楚您使用的是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|
+------------------+

您可以僅采用結果字符串的前6個字符來完成此操作。

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

使用DateTimeFormatter的方式。

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

我建議您通讀DateTimeFormatter文檔,以便以所需的方式格式化日期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM