为了账号安全,请及时绑定邮箱和手机立即绑定

为什么时间输出结果不一样,求解

package com.imooc;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TheLise {
    public static void main(String[] args)throws ParseException {
SimpleDateFormat sb1=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
SimpleDateFormat sb2=new SimpleDateFormat("yyyy/mm/dd HH:mm");
SimpleDateFormat sb3=new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
Date b=new Date();
System.out.println(sb1.format(b));
System.out.println(sb2.format(b));
System.out.println(sb3.format(b));
String d="2019-7-6 16:07:13";
SimpleDateFormat sb4=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date sb6=sb4.parse(d);
System.out.println(sb6);

    }

结果

2019年07月24日17时34分50秒
2019/34/24 17:34
2019-34-24 17:34:50
Exception in thread "main" java.text.ParseException: Unparseable date: "2019-7-6 16:07:13"
 at java.text.DateFormat.parse(DateFormat.java:366)
 at com.imooc.TheLise.main(TheLise.java:17)

Process finished with exit code 1

正在回答

7 回答

Date sb6=sb4.parse(d);

属于不安全的转换https://img1.sycdn.imooc.com//5d3837500001989005030267.jpg需要trycatch起来

0 回复 有任何疑惑可以回复我~
#1

qq_慕姐9261892 提问者

为什么章节中没有用,就能输出正确
2019-07-25 回复 有任何疑惑可以回复我~
#2

qq_慕姐9261892 提问者

我试了下,还是一样的啊
2019-07-25 回复 有任何疑惑可以回复我~

但本质上并没有处理,所以会报出异常

0 回复 有任何疑惑可以回复我~

public static void main(String[] args) throws ParseException {    章节中的异常是把它丢到更上一层了

0 回复 有任何疑惑可以回复我~
SimpleDateFormat sb2=new SimpleDateFormat("yyyy/mm/dd HH:mm");
SimpleDateFormat sb3=new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");//月是MM
还有讲义中也说了,在输出过程中会出现异常,所以应该加上异常处理


1 回复 有任何疑惑可以回复我~
Date b=new Date();

这个是输出当前时间啊,肯定和i题目中的不一样

0 回复 有任何疑惑可以回复我~

SimpleDateFormat类中 mm表示的是分钟,MM表示的是月份。 你在年月日当中的mm指的是分钟而不是MM的月份,所以你现在月份中的34和后面时间中的34是同一个意思。34分钟。

1 回复 有任何疑惑可以回复我~
"yyyy/mm/dd HH:mm"

应该是yyyy/MM/dd HH:mm,你把前面MM写成小写了,小写的代表的是分钟,大写的才代表是月。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么时间输出结果不一样,求解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信