【问题标题】:Scala String to Java Util Date ConversionScala 字符串到 Java Util 日期转换
【发布时间】:2013-08-27 08:41:23
【问题描述】:

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

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

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

然后将 String 转换为 util date..

SearchDate 来自方法parameter,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..

错误是

线程“main”java.text.ParseException 中的异常:无法解析的日期:“Thu Aug 29 00:00:00 IST 2013” 在 java.text.DateFormat.parse(Unknown Source)

请分享你的答案..

【问题讨论】:

    标签: scala date date-conversion


    【解决方案1】:

    您正在尝试将"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)
    

    【讨论】:

    • 你在第一个 SimpleDateFormat 中使用的那个
    • 如何将 E MMM dd HH:mm:ss Z yyyy 格式转换为 yyyy-MM-dd HH:mm 这种格式
    • 您首先使用第一个日期格式调用parse,获取一个日期,然后使用该日期在第二个格式化程序上调用format。查看编辑。
    • @Mila Date 没有任何格式信息,我假设当您想要特定格式的日期时,您实际上想要的是日期格式作为字符串使用该格式。
    • @Mila 您在代码的第四行中做到了这一点。唯一的问题是 IST 的首字母缩写词含糊不清 - 有许多时区称为 IST。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多