Json Can';t使用DateTimeFormat解析日期
我无法获取要用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
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
我错过了什么!?谢谢你的帮助
-格式字符串中的Ericzzz需要一个数字(偏移量)。你的约会已经结束了。您将需要使用v作为时区。我不知道这zzz
将正确匹配时区。请确认您的响应。毫无疑问,这是我代码中的一个错误,但它仍然不起作用。我已经更新了这个问题,加入了你的修正,虽然我最终想出了如何防止日期变成这种格式。现在它可以工作了,使用不同的源字符串(显然是解析模式)。很好,您可以将我的答案标记为答案,或者创建一个描述您的修复并将其标记为答案的答案吗?