为什么输入毫秒就出错

为什么输入毫秒就出错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.iii;
 
import java.util.Date;
import com.alibaba.fastjson.annotation.JSONField;
 
public class Jsw {
@JSONField(name="u")
private String www;
@JSONField(serialize=false)
private Float j;
@JSONField(format="yyyy-MM-dd HH:mm:ss SSS")
private Date Ha;
public String getWww() {
    return www;
}
public void setWww(String www) {
    this.www = www;
}
public Float getJ() {
    return j;
}
public void setJ(Float j) {
    this.j = j;
}
public Date getHa() {
    return Ha;
}
public void setHa(Date ha) {
    Ha = ha;
}
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.iii;
 
import java.util.Calendar;
 
import com.alibaba.fastjson.JSON;
 
public class J12 {
 
    public static void main(String[] args) {
        Jsw s=new Jsw();
        Calendar c=Calendar.getInstance();
        c.set(2019,0,9,2,2,26);
        s.setHa(c.getTime());
        s.setJ(8f);
        s.setWww("kwk");
        String json=JSON.toJSONString(s);
        System.out.println(json);
        Jsw w=JSON.parseObject(json,Jsw.class);
        System.out.println(w.getHa());
    }
 
}

只要有毫秒就运行出错,不知为何

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好。转换为json后,这里的变量名是小写的ha,将Jsw类中的ha全部改为小写就好:

http://img1.sycdn.imooc.com//climg/5d65211b0001dc2209430454.jpg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.Date;
import com.alibaba.fastjson.annotation.JSONField;
  
public class Jsw {
@JSONField(name="u")
private String www;
@JSONField(serialize=false)
private Float j;
@JSONField(format="yyyy-MM-dd HH:mm:ss SSS")
private Date ha;
public String getWww() {
    return www;
}
public void setWww(String www) {
    this.www = www;
}
public Float getJ() {
    return j;
}
public void setJ(Float j) {
    this.j = j;
}
public Date getHa() {
    return ha;
}
public void setHa(Date ha) {
    this.ha = ha;
}
  
}

如果解答了同学的疑问,望采纳~

祝学习愉快~

  • 慕UI5285863 提问者 #1
    还有个小问题,c.set()是不是不能设置毫秒的,虽然JSON的格式中写了毫秒
    2019-08-27 20:39:23
  • 好帮手慕小班 回复 提问者 慕UI5285863 #2
    同学你好,1、Calendar.getInstance()时候,会给Calendar赋值为当前时间的毫秒值,调用set方法会根据参数对年、月、日、时、分、秒对应的值进行替换。然而无法对毫秒值进行替换,所以毫秒值是创建Calendar对象时的毫秒值。2、Calendar类获取当前时间的毫秒-->Calendar cal = Calendar.getInstance(); int mm = cal.get(Calendar.MILLISECOND); 获取到当前时间的毫秒。 综上所述,同学的说法是正确的,Calendar类中有毫秒,但是set方法并不能设置毫秒。很棒呐,继续加油。如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
    2019-08-28 10:00:59
提问者 慕UI5285863 2019-08-27 18:48:43
好帮手慕小班 2019-08-27 18:37:29

同学你好,这里老师复制贴出代码在项目中并没有直接出错,这里同学说只要有毫秒运行就出错,建议同学将报错信息截图贴出,以及html页面内容贴出,便于我们的复制运行,查找问题。注意代码不要贴在回复中,会失去代码格式。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 慕UI5285863 #1
    截图已贴出,老师请看
    2019-08-27 18:50:23
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码