learner216 2022-07-23 18:33 采纳率: 71.4%
浏览 40
已结题

关于SimpleDateFormat类对于String转换的问题

1.第一段代码中解题的思路有没有问题
2.第二段代码中为什么明明是"0天00小时00分00秒"但是打出来的是后一天的情况

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

public class SimpleDateFormatTest {
    public static void main(String[] args) throws ParseException {
        String str1="2021年08月06日11点11分11秒";
        String str2="0天23小时00分00秒";
        SimpleDateFormat s1=new SimpleDateFormat("yyyy年MM月dd日hh点mm分ss秒");
        SimpleDateFormat s2=new SimpleDateFormat("dd天hh小时mm分ss秒");
        Date d1=s1.parse(str1);
        Date d2=s2.parse(str2);
        System.out.println(s1.format(d1));
        System.out.println(s1.format(d2));
        long l1=d1.getTime();
        long l2=d2.getTime();
        long l=l1+l2;
        Date d=new Date();
        d.setTime(l);
        System.out.println(s1.format(d));

    }
}

问题相关代码,请勿粘贴截图
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatTest {
    public static void main(String[] args) throws ParseException {
        //String str1="2021年08月06日11点11分11秒";
        String str2="0天00小时00分00秒";
        SimpleDateFormat s1=new SimpleDateFormat("yyyy年MM月dd日hh点mm分ss秒");
        SimpleDateFormat s2=new SimpleDateFormat("d天hh小时mm分ss秒");
        Date d2=s2.parse(str2);
        System.out.println(d2.getTime());
        System.out.println(s1.format(d2));
    }
}
//第三段代码用于与第二段代码做对照
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatTest {
    public static void main(String[] args) throws ParseException {
        //String str1="2021年08月06日11点11分11秒";
        String str2="0天01小时00分00秒";
        SimpleDateFormat s1=new SimpleDateFormat("yyyy年MM月dd日hh点mm分ss秒");
        SimpleDateFormat s2=new SimpleDateFormat("d天hh小时mm分ss秒");
        Date d2=s2.parse(str2);
        System.out.println(d2.getTime());
        System.out.println(s1.format(d2));
    }
}
//输出结果为:
//-111600000
//1969年12月31日01点00分00秒

运行结果及报错内容

-115200000
1969年12月31日12点00分00秒

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2022-07-23 20:59
    关注
    public class SimpleDateFormatTest {
        public static void main(String[] args) throws ParseException {
            //String str2="2021年08月06日11点11分11秒";
            String str2="01小时00分00秒";
            SimpleDateFormat s1=new SimpleDateFormat("yyyy年MM月dd日hh点mm分ss秒");
            SimpleDateFormat s2=new SimpleDateFormat("hh小时mm分ss秒");
            Date d2=s2.parse(str2);
            System.out.println(d2.getTime());
            System.out.println(s1.format(d2));
        }
    }
    

    输出:1970年01月01日01点00分00秒

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月1日
  • 已采纳回答 7月24日
  • 修改了问题 7月23日
  • 创建了问题 7月23日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来