我有一个数据日期,格式为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\u date值以适合我的用例,我该怎么做?我可以使用拆分函数吗?谢谢!
3条答案
按热度按时间7xllpg7q1#
使用datetimeformatter的方法。
我建议你通读一遍
DateTimeFormatter
文档,这样您就可以按您想要的方式格式化日期。41zrol4v2#
从代码片段中不清楚您使用的是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|
+------------------+
uurity8g3#
您可以通过只获取结果字符串的前6个字符来实现这一点。即