Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Scala中将字符串列表转换为LocalDate类型格式_Scala - Fatal编程技术网

如何在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类型格式。