问答详情
源自:3-6 使用 Date 和 SimpleDateFormat 类表示时间

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

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

提问者:qq_慕姐9261892 2019-07-24 17:38

个回答

  • qq_Sou
    2019-07-24 18:48:37
    已采纳

    Date sb6=sb4.parse(d);

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

  • qq_慕圣6498440
    2020-03-08 09:03:05

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

  • qq_慕圣6498440
    2020-03-08 09:02:18

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

  • 做一个努力的男孩
    2019-09-21 16:33:31

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


  • qq_慕桂英0573037
    2019-08-21 14:30:18

    Date b=new Date();

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

  • Felix_Sun
    2019-08-02 12:27:03

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

  • zhair
    2019-07-25 09:32:49

    "yyyy/mm/dd HH:mm"

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