关于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秒

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秒

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632