Scala字符串到Java Util日期转换

Pra*_*A R 3 scala date date-conversion

您好,此处无法将字符串转换为日期.

我搜索并使用了几种方法,但错误无法改变..

这里的日期格式是 var q 并将其转换为formatedDate ,即String

然后将String转换为util日期..

SearchDate是从方法参数SearchDate的值是"星期四08月29日00:00:00 2013 IST"

    var q: Date = SearchDate
    var dateStr = q.toString()
    var formatter: DateFormat = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy")
    var dat = formatter.parse(dateStr)
    var cal: Calendar = Calendar.getInstance()
    cal.setTime(dat)
    var formatedDate = cal.get(Calendar.DATE) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" + cal.get(Calendar.YEAR)
    println("formatedDate : " + formatedDate)
    val date = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(dateStr)// Error Occured Here..
Run Code Online (Sandbox Code Playgroud)

错误是

线程"main"中的异常java.text.ParseException:Unparseable date:"Thu Aug 29 00:00:00 IST 2013"​​at java.text.DateFormat.parse(Unknown Source)

请分享你的答案..

sou*_*eck 8

您正在尝试将"E MMM dd HH:mm:ss Z yyyy"格式化的日期字符串解析为格式化的日期字符串"yyyy-MM-dd HH:mm",在此行中:

val date = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(dateStr)
Run Code Online (Sandbox Code Playgroud)

难怪它失败了.

也许你错误地为第二个SimpleDateFormat实例采用了错误的日期格式?或者你可能传递了错误的参数parse()

编辑

看起来你真的想打电话:

val date = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(dat)
Run Code Online (Sandbox Code Playgroud)