2016-09-05 2 views
0
val funcTimeDiffernceInSeconds = (startTime: String, endTime: String) => { 

    println("starttime is"+startTime+"endtime"+endTime) 

    if (startTime.matches("[\\d]{4}-[\\d]{2}-[\\d]{2}[\\s]{1}[\\d]{2}:[\\d]{2}:[\\d]{2}:[\\d]+") && endTime.matches("[\\d]{4}-[\\d]{2}-[\\d]{2}[\\s]{1}[\\d]{2}:[\\d]{2}:[\\d]{2}:[\\d]+")) { 
     //val start = new JDateTime(startTime, "yyyy-MM-dd HH:mm:ss:SSS") 

     val start = new JDateTime("2016-02-21 00:17:43:126", "yyyy-MM-dd HH:mm:ss:SSS") 

     val end = new JDateTime(endTime, "yyyy-MM-dd HH:mm:ss:SSS") 
     new Period(start, end).getSeconds().toString() 
    } 
    else 
     "Invalid" 
    } 

Это дает мне исключение:Работа с JDateTime дает мне исключение

java.lang.NumberFormatException: Для ввода строки: "02-2100"

Я использую JDateTime 2.9.4 с помощью этого SBT: ("joda-time" % "joda-time" % "2.9.4")

+1

На какой линии? Каковы значения параметров метода? –

+0

На линии..val start = new JDateTime ("2016-02-21 00: 17: 43: 126", "yyyy-MM-dd HH: mm: ss: SSS") .. независимо от параметров .. – Luckylukee

ответ

0

с этим в sbt.build:

// https://mvnrepository.com/artifact/joda-time/joda-time 
libraryDependencies += "joda-time" % "joda-time" % "2.9.4" 

// https://mvnrepository.com/artifact/org.joda/joda-convert 
libraryDependencies += "org.joda" % "joda-convert" % "1.8.1" 

Это будет работать (делая минимальные изменения в коде):

import org.joda.time.Duration 
import org.joda.time.format.DateTimeFormat 

val funcTimeDiffernceInSeconds = (startTime: String, endTime: String) => { 

    //println("starttime is "+startTime+"\nendtime "+endTime) 

    if (startTime.matches("[\\d]{4}-[\\d]{2}-[\\d]{2}[\\s]{1}[\\d]{2}:[\\d]{2}:[\\d]{2}:[\\d]+") && endTime.matches("[\\d]{4}-[\\d]{2}-[\\d]{2}[\\s]{1}[\\d]{2}:[\\d]{2}:[\\d]{2}:[\\d]+")) { 
    //val start = new JDateTime(startTime, "yyyy-MM-dd HH:mm:ss:SSS") 

    val formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss:SSS") 

    val start = formatter.parseDateTime(startTime) 

    val end = formatter.parseDateTime(endTime) 

    new Duration(start, end).getStandardSeconds.toString 
    } 
    else 
    "Invalid" 

} 

Использование:

funcTimeDiffernceInSeconds("2016-02-21 00:17:43:126", "2016-02-22 00:17:43:126") 
res0: String = 86400 

 Смежные вопросы

  • Нет связанных вопросов^_^