【发布时间】:2013-06-28 11:06:26
【问题描述】:
我正在将数据对象转换为 JSON 并返回 JSON.stringify 和 JSON.parse。
这在所有设备上都非常有效,但在 Samsung Galaxy SII 上,线路:
console.log(jsonObj.gebDat+"::"+new Date(jsonObj.gebDat));
我得到了输出:
1973-07-01T10:49:25.134Z::无效日期
我正在像this answer 一样实现这个,它适用于大多数设备,我做错了什么吗??
更新
澄清问题。我创建了一个字符串调用
var stringToSave = JSON.stringify({gebDat: dataclass.gebDat, <here are some more variables>});
然后我保存它。稍后,我加载字符串并用
解析它var jsonObj = JSON.parse(stringToSave);
然后,我尝试再次设置我的日期(在该行之前调用日志)
console.log(jsonObj.gebDat+"::"+new Date(jsonObj.gebDat));
this.gebDat = new Date(jsonObj.gebDat);
如上所示,日志给了我无效的日期,当我表示日期时,它显示NaN.NaN.NaN 而不是预期的01.07.1973
【问题讨论】:
-
您的 Galaxy SII 与其他设备的 Android 版本是否相同?
-
@Bigood 不,Galaxy SII 的 Android 版本为 2.3.3。
-
你们处理不同时区的日期吗?其他明智的尝试构造函数格式
new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]]]]) -
什么是
jsonObj.gebDat?一个字符串?日期对象? -
@Xotic750
jsonObj.gebDat在这种情况下是一个包含“1973-07-01T10:49:25.134Z”的字符串。该字符串是使用JSON.stringify在Date类型的变量上生成的
标签: javascript android json samsung-mobile