如何从具有Java日期的对象获取日期变量

Jes*_*ala 2 java date

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

System.out.println("My date: " + valor);
Run Code Online (Sandbox Code Playgroud)

它打印出来

我的约会时间:2015年1月1日星期四13:00:00

我想将此文本转换为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();
    }
Run Code Online (Sandbox Code Playgroud)

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

Ell*_*sch 7

你的格式不包括时区(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();
}
Run Code Online (Sandbox Code Playgroud)

输出是

Thu Jan 01 13:00:00 CST 2015
Run Code Online (Sandbox Code Playgroud)


Col*_*inD 5

看起来您的日期格式不考虑时区.也许试试吧

EEE MMM dd HH:mm:ss z yyyy
Run Code Online (Sandbox Code Playgroud)

请参阅Java Docs