当前位置: 首页 > 知识库问答 >
问题:

如何使用joda time在scala中将dd/mm/yyyy转换为yyyymmdd

姚麒
2023-03-14

如何将dd/mm/yyyy转换为yyymmdd格式,并通过在Scala中使用joda时间将dd/m/yyyyy转换为yyymmdd格式。

我正在使用这个依赖项

 "joda-time" % "joda-time" % "2.9.9",

共有2个答案

樊奇思
2023-03-14
import org.joda.time.DateTime
import org.joda.time.format._

val fmt = DateTimeFormat.forPattern("dd/mm/yyyy")
val dt = fmt.parseDateTime("02/02/2017")
val fmt2 = DateTimeFormat.forPattern("yyyymmdd")
fmt2.print(dt)
齐俊达
2023-03-14

这个答案已经在Java中回答了您的问题,但在这里它被翻译成Scala:

import org.joda.time.DateTime
import org.joda.time.format.{DateTimeFormat, DateTimeFormatter}

// define original date format
val originalFormat: DateTimeFormatter = DateTimeFormat.forPattern("dd/MM/yyyy")
val input: DateTime = originalFormat.parseDateTime("02/09/2017")

// define new format
val newFormat: DateTimeFormatter = DateTimeFormat.forPattern("yyyyMMdd")
val output: String = newFormat.print(input) // 20170902

此代码已经解释了从您的约会中缺少一个前导的0(即2017年9月2日和2017年9月2日2)。不过,它不会预测一年中缺失的部分,因此2/9/17将作为00170902输出,而不是20170902

正如我前面提到的答案,你可以使用java.time来做同样的事情:

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

val originalFormat = DateTimeFormatter.ofPattern("dd/MM/yyyy")
val input = LocalDate.parse("02/09/2017", originalFormat)
val newFormat = DateTimeFormatter.ofPattern("yyyyMMdd")
val output = input.format(newFormat)

 类似资料:
  • 我想将日期从07/02/2019转换为2019年7月07日。我的输入值是07/02/2019我想与目标值2019年7月07日进行比较.....请帮助我... public static void main(string[]args)引发ParseException{ 输出:Mon Jul 01 00:00:00 IST 2019这不是我的期望值

  • 问题内容: 有人可以让我知道吗,如何在Java 中将日期格式转换为日期, 在输入和输出日期中都应为Strings。 我用过apache,但是在输出中没有毫秒数。 问题答案: 您还可以在Java 8中使用更新的Time API ,类似… 哪个输出… 这使您对管理时区负有更多责任,通常这可能是一个更好的解决方案 而且因为在Java 8 API中的时区之间进行转换使我很头疼(缺乏经验:P) 哪个输出…

  • 问题内容: 我有一个格式。我希望它采用以下格式 以下是我尝试进行此转换的示例: 我得到的输出仍然不是格式。 请让我知道如何格式化从到 问题答案: 是自Unix纪元(1970年1月1日UTC:00:00)以来的毫秒数的容器。 它没有格式的概念。 输出…

  • 问题内容: 我有一个名为的表,还有一个名为的列,ID的数据如下所示: IN_Date的数据类型为varchar(50)。 我正在尝试将IN_Date转换为mm / dd / yyyy格式。我尝试这样做: 但是格式仍然没有改变。谁能告诉我我要去哪里错了 问题答案: 您需要先进行转换才能将数据固定(正确的数据类型), 然后再 格式化…

  • 问题内容: 2012年12月1日星期六00:00:00 GMT 我必须将以上日期转换为以下格式 2012-12-01 我怎样才能? 我已经尝试使用以下方法,但无法正常工作 问题答案: 用这个。 您将获得输出为

  • 问题内容: 我有一个日期列,其中日期格式为 在SQL Server中。有什么可能的方法来检索日期格式为 在选择语句中? 问题答案: 试试这个: 源链接 附录1: 如我的评论中所述,您需要先将字段转换为类型,然后才能执行上述操作。此示例应在您的SQL Server上运行: 如果出现此异常: 消息242,级别16,状态3,行1将varchar数据类型转换为datetime数据类型导致超出范围的值。 然