2017-09-04 230 views
0

我有从字符串名称派生的字符串列表,如下所示。如何将字符串列表转换为LocalDate类型Scala中的格式

List(20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625) 

我想将这整个元素列表转换为本地日期类型格式。我用Scala语言编写代码。任何人都可以帮我吗?

+0

什么格式的日期? –

+0

你试过了什么?如果我要转换它,我将遍历每个项目然后单独转换它 – Kokombads

+0

我想将字符串转换为LocalDate格式。 –

回答

1

你可以试试下面的代码:

import java.time.LocalDate 
import java.time.format.DateTimeFormatter 

val inputTimes = List(20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625) 
val dtf = DateTimeFormatter.ofPattern("yyyyMMdd") 
val dates = inputTimes.map(date => LocalDate.parse(date.toString, dtf)) 
dates 

您也可以指定一个新的语言环境

import java.time.LocalDate 
import java.time.format.DateTimeFormatter 

val inputTimes = List(20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625) 
val dtf = DateTimeFormatter.ofPattern("yyyyMMdd") 
val dtfWithLocale = dtf.withLocale(java.util.Locale.US) 
val dates = inputTimes.map(date => LocalDate.parse(date.toString, dtfWithLocale)) 
dates 

dates是结果。

0

,如果你想将其转换为YYYY-MM-DD格式,你可以做这样的事情

scala> val list = List("20170625", "20170625", "20170625", "20170625", "20170625", "20170625", "20170625", "20170625") 
list: List[String] = List(20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625) 

scala> import java.time.LocalDate 
import java.time.LocalDate 

scala> list.map(input => LocalDate.parse(s"${input.substring(0,4)}-${input.substring(4,6)}-${input.substring(6,8)}")) 
res11: List[java.time.LocalDate] = List(2017-06-25, 2017-06-25, 2017-06-25, 2017-06-25, 2017-06-25, 2017-06-25, 2017-06-25, 2017-06-25) 
+0

嗨..这是返回列表包含日期类型元素? –

+0

此代码再次返回字符串类型元素 –

+0

我想将字符串类型转换为LocalDate类型的格式。没有字符串类型 –

0

要转换为java.util.Date你可以使用字符串:

val df = new SimpleDateFormat("yyyyMMdd") 
list.map(df.parse(_)) 

对于LOCALDATE的使用

list.map(LocalDate.parse(_, DateTimeFormatter.ofPattern("yyyyMMdd"))) 
+0

我想将String类型转换为LocalDate类型的格式。 –

0

该拆分是粗略实现。但是应该工作

def split(i: Int): LocalDate = { 
    val date = i % 100 
    val rem = i/100 
    val mon = rem % 100 
    val r = rem/100 
    LocalDate.of(r, mon, date) 
    } 

    def main(args: Array[String]): Unit = { 
    val l = List(20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625) 
    val x = l.map(split) 
    } 
相关问题