2013-08-27 71 views
3

喜字符串轉化爲日期是不可能在這裏..斯卡拉字符串到Java的Util日期轉換

我搜索和使用多種方法,但誤差不能改變..

這裏的日期格式爲變種q,轉換至formatedDate是字符串

然後將字符串轉換成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.. 

誤差在螺紋

異常 「主要的」 java .text.ParseException:無法解析的日期: 「週四8月29日00:00:00北京時間2013」​​ 在java.text.DateFormat.parse(來源不明)

請分享你的答案..

回答

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) 
+0

好了您的權利,但它是正確的SimpleDateFormat –

+1

你在第一個的SimpleDateFormat – soulcheck

+0

如何到E MMM轉換使用的一種dd HH:mm:ss Z yyyy格式爲yyyy-MM-dd HH:mm這種格式 –