Java_常用类API之二
Posted 依然耀眼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java_常用类API之二相关的知识,希望对你有一定的参考价值。
Date类
Date类表示时间,时间可以精确到毫秒。创建一个Date对象,其实就表示时间的对象。
1 Date date1=new Date(); //当前系统时间 2 3 Date date2=new Date(0L); //1970年1月1日8点0时0分 (中国) 4 5 Date date3=new Date(1000L*60*60*24); //1970年1月2日8点0时0分 (中国)
获取和设置时间
1 Date date=new Date(); //当前系统时间 2 //设置时间为 3 date.setTime(1000L*60*60*24); //1970年1月2日8点0时0分 (中国) 4 5 //获取时间 6 long time=date.getTime(); //1000L*60*60*24 7 System.out.println(time); //毫秒值
1 SimpleDateFormat在进行日期格式化或者解释时,需要识别一些特定符号 2 yyyy: 年 1999年 3 MM: 年中的月 8月 4 dd: 月中的天 28日 5 HH: 天中的小时 16时 6 mm: 时中的分 20分 7 ss: 分中的秒 18秒 8 SS: 毫秒 9 10 格式化:Date对象转换为字符串 11 12 解析: 字符串转换为Date对象 13 14 //在进行日期格式化和解析之前,必须使用以上的符号创建SimpleDateFormat对象,来指定日期或者时间的格式 15 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
下面是格式化和解析的代码
1 SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); 2 3 //1.日期格式化:Date对象-->String 4 String str=sdf.format(new Date()); //把当前时间格式化为字符串 5 6 //2.日期解析:String --> Date对象 7 Date date=sdf.prase("1992年08月09日 16时24分18秒");
练习:键盘录入一个生日(格式:yyyy-MM-dd),计算当前的年龄是多少?
1 //键盘录入字符串生日 2 Scanner sc=new Scanner(System.in); 3 System.out.println("请输入你的生日(格式:yyyy-MM-dd):"); 4 String birthday=sc.next(); 5 6 //把生日的字符串,转换为Date 7 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 8 Date date1=sdf.prase(birthday); //生日那天的Date对象 9 long time1=date1.getTime(); //生日那天的毫秒值 10 11 //获取当前时间的毫秒值 12 long time2=System.currentTimeMills(); //当前时间的毫秒值 13 14 //计算时间差 15 long age=(time2-time1)/1000/60/60/24/365; 16 System.out.println("年龄为:"+age);
LocalDateTime获取对象
LocalDateTime类 可以表示时间的(年、月、日、时、分、秒)
1 public static LocalDateTime now() 2 获取当前的系统时间LocalDateTime对象 3 public static LocalDateTime of(int y,int m,int d,int h,int m,int s) 4 获取指定时间的LocalDateTime对象
代码演示
1 //获取当前时间对象 2 LocalDateTime ldt1 = LocalDateTime.now(); 3 4 //获取指定时间对象,2011年11月11日10点10分10秒 5 LocalDateTime ldt2 = LocalDateTime.of(2011,11,11,10,10,10);
1 public int getYear() 2 获取年 3 public int getMonthValue() 4 获取月 5 public int getDayOfMonth() 6 获取月中的天 7 public int getDayOfYear() 8 获取年中的天 9 public DayOfWeek getDayOfWeek() 10 获取星期中的第几天 11 public int getHour() 12 获取小时 13 public int getMinute() 14 获取分钟 15 public int getSecond() 16 获取秒
LocalDateTime的转换方法
1 三者的区别 2 LocalDateTime: 包含年、月、日、时、分、秒 3 LocalDate: 包含年、月、日 4 LocalTime: 包含时、分、秒 5 6 可以通过LocalDateTime转换为LocalDate和LocalTime 7 public LocalDate toLocalDate() 8 把LocalDateTime转换为LocalDate 9 public LocalTime toLocalTime() 10 把LocalDateTime转换为LocalTime
1 public String format(DateTimeFormatter formatter) 2 格式化:把LocalDateTime转换为String 3 static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter) 4 解析:把字符串转换为LocalDateTime对象
日期格式化代码演示
1 //获取当前时间的LocalDateTime对象 2 LocalDateTime localDateTime = LocalDateTime.now(); 3 4 //创建日期格式化器 5 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); 6 7 //格式化 8 String str=localDateTime.format(formatter); 9 System.out.println(str);
日期解析的代码演示
1 //创建日期格式化器 2 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); 3 4 //日期解析 5 LocalDateTime localDateTime= LocalDateTime.parse("2020-08-23 15:19:39",formatter); 6 7 //...后面就可以使用LocalDateTime的方法,对时间进行操作
LocalDateTime加减运算方法
1 public LocalDateTime plusYears(int n) 2 加、减年 (正数表示增加、负数表示减少) 3 public LocalDateTime plusMonths(int n) 4 加、减月 5 public LocalDateTime plusDays(int n) 6 加、减日 7 public LocalDateTime plusHours(int n) 8 加、减时 9 public LocalDateTime plusMinutes(int n) 10 加、减分 11 public LocalDateTime plusSeconds(int n) 12 加、减秒
LocalDateTime设置时间的方法
1 public LocalDateTime withYear(int n) 2 设置年 3 public LocalDateTime withMonth(int n) 4 设置月 5 public LocalDateTime withDay(int n) 6 设置日 7 public LocalDateTime withHour(int n) 8 设置时 9 public LocalDateTime withMinute(int n) 10 设置分 11 public LocalDateTime withSecond(int n) 12 设置秒
1 //生日的时间 2 LocalDate localDate1 = LocalDate.of(1996, 6, 23); 3 4 //今天的时间 5 LocalDate localDate2 = LocalDate.now(); 6 7 //获取时间间隔对象 8 Period period = Period.between(localDate1,localDate2); 9 10 //获取相隔的年 11 int years = period.getYears(); 12 System.out.println(years); 13 14 //获取相隔月 15 long totalMonths = period.getMonths(); 16 System.out.println(totalMonths); 17 18 //获取相隔的日 19 int days = period.getDays(); 20 System.out.println(days);
1 //当时间 2 LocalDateTime localDate1 = LocalDateTime.now(); 3 //国庆时间 4 LocalDateTime localDate2 = LocalDateTime.of(2021, 10, 1,0,0,0); 5 6 //获取时间间隔对象 7 Duration duration = Duration.between(localDate1,localDate2); 8 9 //获取相隔总共小时数 10 long hour = duration.toHours(); 11 //获取相隔的总共分钟数 12 long minutes = duration.toMinutes(); 13 //获取相隔的总共秒数 14 long seconds = duration.toSeconds(); 15 //相隔的总共毫秒秒数 16 long millis = duration.toMillis(); 17 18 System.out.println("-----------"); 19 20 //获取相隔天的部分 21 long day = duration.toDaysPart(); 22 //获取相隔小时的部分 23 int hoursPart = duration.toHoursPart(); 24 //获取相隔分钟的部分 25 int minutesPart = duration.toMinutesPart(); 26 //获取相隔秒的部分 27 int secondsPart = duration.toSecondsPart(); 28 System.out.println("距离今年国庆放假还有:"+day+"天"+hoursPart+"小时"+minutesPart+"分钟"+secondsPart+"秒");
异常类的继承体系
1 Throwable 是所有异常和错误的根类 2 Error: 错误,不能解决的问题。 3 Exception: 异常,可以解决的问题。 4 RuntimeException: 运行时异常,在运行时才出现问题 5 非RuntimeException:编译时异常,编译时有问题。
直接停止程序运行,然后把异常信息打印在控制台
try...catch手动处理
1 try{ 2 //检查代码中是否有异常 3 }catch(异常类 e){ 4 //如果try中有异常,就会被catch捕获到 5 } 6 7 好处:处理之后的代码还可以继续执行
throws 声明异常
throws用在方法上,用来声明一个方法它可能会有异常
1 //如果一个方法后面有throws声明异常,那么调用方法的时候就需要处理异常。 2 public static void method(String str) throws ParseException { 3 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 4 Date date = sdf.parse(str); 5 System.out.println(date); 6 }
1 public String getMessage() 2 获取异常信息 3 public String toString() 4 返回异常类名+异常信息 5 public void printStackTrace() 6 打印详细的异常信息
1 public static void main(String[] args) { 2 sale(7); 3 } 4 5 public static void sale(int money){ 6 if(money==5||money==10){ 7 System.out.println("钱是真的,可以正常买东西"); 8 }else{ 9 throw new RuntimeException("钱是假的,我报警了,等着!!!"); 10 } 11 }
1 自定义异常类的步骤: 2 1.写一个类继承Exception或者RuntimeException 3 2.自动生成两个构造方法 4 5 注意:自定义异常,名称一定要见名知意(最好是能够使用异常类的名称,来说明问题)
以上是关于Java_常用类API之二的主要内容,如果未能解决你的问题,请参考以下文章
一脚踩进java之基础篇27——常用API(System类,Math类)