Zah*_*Mor 3 datetime scala jodatime apache-spark
我正在使用以下方式将表示DateTime的String转换为unix_time(epoch):
def strToTime(x: String):Long = { DateTimeFormat.
forPattern("YYYY-MM-dd HH:mm:ss").parseDateTime(x).getMillis()/1000 }
Run Code Online (Sandbox Code Playgroud)
得到像这样的Long列表:
.map( p=> List( strToTime(p(0) ) ) )
Run Code Online (Sandbox Code Playgroud)
我的问题是-向后上转最简单的方法是什么?就像是:
def timeToStr(x: Long):String = { x*1000L.toDateTime}
Run Code Online (Sandbox Code Playgroud)
我可以在上面的列表(长)上使用的
我已经读过 从Epcal到epoch到joda DateTime的转换秒数,但无法成功应用
按照我的方法!
import java.util.Date
import java.text.SimpleDateFormat
def epochToDate(epochMillis: Long): String = {
val df:SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd")
df.format(epochMillis)
}
Run Code Online (Sandbox Code Playgroud)
遵循测试运行。
scala> epochToDate(1515027919000L)
res0: String = 2018-01-03
Run Code Online (Sandbox Code Playgroud)
您有一个优先级问题 -.toDateTime在应用1000L之前*被应用。括号内使调用顺序清晰的操作:
def timeToStr(x: Long): String = { (x*1000L).toDateTime }
Run Code Online (Sandbox Code Playgroud)
相反的parseDateTime是print:)
def timeToStr(epochMillis: Long): String =
DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss").print(epochMillis)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15051 次 |
| 最近记录: |