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日

悬赏问题

  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥15 小红薯封设备能解决的来
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答
  • ¥20 在本地部署CHATRWKV时遇到了AttributeError: 'str' object has no attribute 'requires_grad'
  • ¥15 vue+element项目中多tag时,切换Tab时iframe套第三方html页面需要实现不刷新
  • ¥50 深度强化学习解决能源调度问题
  • ¥15 一道计算机组成原理问题