我有一个带有以下文本的对象:

System.out.println("My date: " + valor);

它打印



我想将此文本转换为Date变量,这是我的代码:
    dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy",new Locale("es","MX"));
    try {
        Date dateToString = dateFormat.parse(valor.toString());

    } catch (ParseException e) {
        new Date();
    }

我总是得到当前日期,我已经为SimpleDateFormat尝试了几种组合,但是没有用,将Object转换为Date变量的正确方法是什么?

最佳答案

您的格式不包含时区(z),并且您不应该在未记录日志的情况下吞下Exception(这就是我发现错误的方式)。就像是,

DateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
try {
    Date dateToString = dateFormat.parse("Thu Jan 01 13:00:00 CST 2015");
    System.out.println(dateFormat.format(dateToString));
} catch (ParseException e) {
    e.printStackTrace();
}

输出为
Thu Jan 01 13:00:00 CST 2015

09-30 17:31
查看更多