Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json Can';t使用DateTimeFormat解析日期_Json_Parsing_Datetime Format - Fatal编程技术网

Json Can';t使用DateTimeFormat解析日期

Json Can';t使用DateTimeFormat解析日期,json,parsing,datetime-format,Json,Parsing,Datetime Format,我无法获取要用DateTimeFormat格式分析的字符串。以下是输入字符串: 2011年4月7日星期四美国东部夏令时00:00:00 和我的格式: DateTimeFormat.getFormat(“EEE-MMM-dd-HH:mm:ss-vvv-yyy”) 我已经读到这是正确的格式字符串,但对我来说,它没有正确解析。代码如下: public class YcDateColumn extends TextColumn<JSONObject> { DateTimeForma

我无法获取要用DateTimeFormat格式分析的字符串。以下是输入字符串:
2011年4月7日星期四美国东部夏令时00:00:00

和我的格式:
DateTimeFormat.getFormat(“EEE-MMM-dd-HH:mm:ss-vvv-yyy”)

我已经读到这是正确的格式字符串,但对我来说,它没有正确解析。代码如下:

public class YcDateColumn extends TextColumn<JSONObject> {

    DateTimeFormat fmtC = DateTimeFormat.getFormat("dd-MMM-yyyy");
    DateTimeFormat fmtB = DateTimeFormat.getFormat("MMM dd, yyyy hh:mm:ss a");
    DateTimeFormat fmtA = DateTimeFormat.getFormat("EEE MMM dd HH:mm:ss vvv yyyy");


    private String key = null;
    private String def = null;

    public YcDateColumn(String aKey, String aDefault) {
        super();
        key = aKey;
        def = aDefault;
    }

    public YcDateColumn(String aKey) {
        this(aKey, null);
    }

    @Override
    public String getValue(JSONObject aObj) {
            System.out.println("YcDateColumn - object= " + aObj);
        JSONValue mVal = aObj.get(key);
        if (mVal == null)
            return def;
        System.out.println("YcDateColumn -  about to parse string: " + mVal.isString().stringValue());
        return fmtC.format(fmtA.parse(mVal.isString().stringValue()));
    }

}
公共类YcDateColumn扩展了TextColumn{
DateTimeFormat fmtC=DateTimeFormat.getFormat(“dd-MMM-yyyy”);
DateTimeFormat fmtB=DateTimeFormat.getFormat(“mm dd,yyyy hh:mm:ss a”);
DateTimeFormat fmtA=DateTimeFormat.getFormat(“EEE MMM dd HH:mm:ss vvv yyyy”);
私有字符串密钥=null;
私有字符串def=null;
公共数据列(字符串aKey、字符串aDefault){
超级();
key=aKey;
def=故障;
}
公共数据列(字符串aKey){
这(aKey,null);
}
@凌驾
公共字符串getValue(JSONObject aObj){
System.out.println(“YcDateColumn-object=“+aObj”);
JSONValue mVal=aObj.get(key);
if(mVal==null)
返回def;
System.out.println(“YcDateColumn-即将解析字符串:”+mVal.isString().stringValue());
返回fmtC.format(fmtA.parse(mVal.isString().stringValue());
}
}
最后一个System.out打印此文本(要分析的字符串):
YcDateColumn-即将分析字符串:2011年4月7日星期四00:00:00 EDT

我错过了什么!?谢谢你的帮助


-格式字符串中的Eric

zzz需要一个数字(偏移量)。你的约会已经结束了。您将需要使用v作为时区。

我不知道这
zzz
将正确匹配时区。请确认您的响应。毫无疑问,这是我代码中的一个错误,但它仍然不起作用。我已经更新了这个问题,加入了你的修正,虽然我最终想出了如何防止日期变成这种格式。现在它可以工作了,使用不同的源字符串(显然是解析模式)。很好,您可以将我的答案标记为答案,或者创建一个描述您的修复并将其标记为答案的答案吗?