【问题标题】:How to convert string to epoch time?如何将字符串转换为纪元时间?
【发布时间】:2017-07-02 16:38:34
【问题描述】:

我有一列它在表中有纪元时间(字符串类型)。想要从纪元时间减去一小时。我正在尝试将字符串转换为纪元时间并减去。但我无法将字符串转换为纪元时间。请帮忙?

例如:

val epochTime="1499013460"

我想从上述纪元时间中减去一小时。

谢谢!

【问题讨论】:

  • 如果可能的话,发布一个字符串日期格式的例子
  • 你试过看这里吗? stackoverflow.com/questions/31134969/…
  • 是的,我尝试过 .Hitting with Caused by: java.lang.IllegalArgumentException: Invalid format: "1499015689" is malformed at "9"。 val table=Seq(("1499015689",1),("1499015689",2)).toDF("col1","col2") val time_col = table.select(col("col1")) .map(line => new DateTime(line(0)).toString("yyyy-MM-dd")).toDF() 请让我知道我是否犯了任何错误。谢谢!

标签: scala apache-spark apache-spark-sql


【解决方案1】:

这是一种方法:

scala> import java.time.Instant
import java.time.Instant

scala> val myString = Instant.now().toString
myString: String = 2017-07-02T17:04:39.911Z

scala> Instant.parse(myString).getEpochSecond
res8: Long = 1499015079

【讨论】:

    【解决方案2】:

    如果您有一个纪元时间值,而您想要做的就是从中减去一个小时,您可以采用最简单的解决方案,即:

    val secondsPerHour = 60 * 60
    val withHourSubtracted = (epochTime.toLong - secondsPerHour).toString
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-21
      • 2013-01-25
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      • 2017-11-10
      • 2013-08-25
      相关资源
      最近更新 更多