您好,我试图使用SimpleDateFormatter来解析日期 Wed, 30 Jun 2010 15:07:06 CST

我正在使用以下代码

public static SimpleDateFormat postedformat = 
    new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
Date newDate = new Date(posteformat.parse("Wed, 30 Jun 2010 15:07:06 CST"));

但是我得到了违法的评估。请帮忙!

有帮助吗?

解决方案

postedformat.parse() 返回a Date, ,没有 Date(Date) 构造函数。

大概删除了电话 new Date, , 所以你说 Date newDate = poste.... 就足够了

其他提示

您的代码片段未编译。这种轻微的修改成功地编译和解析:

public static void main(String[] args) throws ParseException {
    SimpleDateFormat postedformat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
    Date newDate = postedformat.parse("Wed, 30 Jun 2010 15:07:06 CST");
    System.out.println("newDate = " + newDate);
}

这是在Mac OS X上使用Java 6。

没有 java.util.Date() 构造函数 java.util.Date 作为论点

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateFormat {
    public static SimpleDateFormat postedformat = 
        new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
    public static void main(String[] args) {
        try {
            Date newDate = postedformat.parse("Wed, 30 Jun 2010 15:07:06 CST");
            System.out.println("Date: " + newDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

输出:

Date: Wed Jun 30 22:07:06 BST 2010

Javadoc的示例显示了毫无用处的逗号,但适用于美国语言环境。因此,要么尝试逃脱逗号(按照亚伦的建议),要么使用其他构造函数并设置位置:

new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);

另一个问题可能是时区('CST'),它在手头上被弃用,另一个是模棱两可的(根据Javadoc的 java.util.TimeZone)。测试,如果它在没有时区属性的情况下工作(以格式字符串和值)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top