3

嗨,这里无法将字符串转换为日期..

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

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

然后将字符串转换为实用日期..

SearchDate来自方法参数SearchDate 的值为“Thu Aug 29 00:00:00 IST 2013”

    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..

错误是

线程“主”java.text.ParseException 中的异常:无法解析的日期:“Thu Aug 29 00:00:00 IST 2013”​​在 java.text.DateFormat.parse(未知来源)

请分享你的答案..

4

1 回答 1

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)

难怪会失败。

也许您错误地将错误的日期格式用于第二次SimpleDateFormat?或者,也许你传递了错误的参数parse()

编辑

看起来你实际上想打电话:

val date = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(dat)
于 2013-08-27T09:28:16.647 回答