如何在Scala中将字符串列表转换为LocalDate类型格式
我有如下从文件夹名派生的字符串列表如何在Scala中将字符串列表转换为LocalDate类型格式,scala,Scala,我有如下从文件夹名派生的字符串列表 List(20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625) 我想将整个元素列表转换为本地日期类型格式。我已经用Scala语言编写了代码。有人能帮我吗 如果您试图将其转换为YYYY-MM-DD格式,您可以执行以下操作 scala> val list = List("20170625", "20170625", "20170625", "20170
List(20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625, 20170625)
我想将整个元素列表转换为本地日期类型格式。我已经用Scala语言编写了代码。有人能帮我吗 如果您试图将其转换为
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)
如果您试图将其转换为
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)
要将字符串转换为java.util.Date,可以使用:
val df = new SimpleDateFormat("yyyyMMdd")
list.map(df.parse(_))
用于LocalDate
list.map(LocalDate.parse(_, DateTimeFormatter.ofPattern("yyyyMMdd")))
要将字符串转换为java.util.Date,可以使用:
val df = new SimpleDateFormat("yyyyMMdd")
list.map(df.parse(_))
用于LocalDate
list.map(LocalDate.parse(_, DateTimeFormatter.ofPattern("yyyyMMdd")))
拆分是一个粗糙的实现。然而,这应该是可行的
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)
}
拆分是一个粗糙的实现。然而,这应该是可行的
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)
}
您可以尝试以下代码:
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
日期是结果。您可以尝试以下代码:
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
是结果。首先,我编写了将字符串转换为LocalDateTime格式的函数,如下所示
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
private def stringToDateTime(datetime:String): LocalDateTime ={
val pattern:String="yyyyMMdd"
LocalDateTime.parse(datetime, DateTimeFormatter.ofPattern(pattern))}
def mapDateTime(list:List[String]):List[LocalDateTime] ={
list.map(datetime => stringToDateTime(datetime))}
然后我用元素列表映射值,如下所示
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
private def stringToDateTime(datetime:String): LocalDateTime ={
val pattern:String="yyyyMMdd"
LocalDateTime.parse(datetime, DateTimeFormatter.ofPattern(pattern))}
def mapDateTime(list:List[String]):List[LocalDateTime] ={
list.map(datetime => stringToDateTime(datetime))}
然后我得到以下结果
List[java.time.LocalDateTime] = 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)
首先,我编写了将字符串转换为LocalDateTime格式的函数,如下所示
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
private def stringToDateTime(datetime:String): LocalDateTime ={
val pattern:String="yyyyMMdd"
LocalDateTime.parse(datetime, DateTimeFormatter.ofPattern(pattern))}
def mapDateTime(list:List[String]):List[LocalDateTime] ={
list.map(datetime => stringToDateTime(datetime))}
然后我用元素列表映射值,如下所示
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
private def stringToDateTime(datetime:String): LocalDateTime ={
val pattern:String="yyyyMMdd"
LocalDateTime.parse(datetime, DateTimeFormatter.ofPattern(pattern))}
def mapDateTime(list:List[String]):List[LocalDateTime] ={
list.map(datetime => stringToDateTime(datetime))}
然后我得到以下结果
List[java.time.LocalDateTime] = 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)
什么样的日期?你试过什么?如果要转换它,我将循环遍历每个项目,然后单独转换。我想将字符串转换为LocalDate格式。日期的格式是什么?您尝试过什么?如果我要转换它,我将循环遍历每个项目,然后单独转换。我想将字符串转换为LocalDate格式。嗨。。此返回列表是否由日期类型元素组成?我想将字符串类型转换为LocalDate类型格式。不是字符串类型。。此返回列表是否由日期类型元素组成?我想将字符串类型转换为LocalDate类型格式。不是字符串类型我要将字符串类型转换为LocalDate类型格式。我要将字符串类型转换为LocalDate类型格式。