java实用类(四)(java的实用性)

  本篇文章为你整理了java实用类(四)(java的实用性)的详细内容,包含有java常用实用类总结 java的实用性 java常用实用类实验报告 java类使用 java实用类(四),希望能帮助你了解 java实用类(四)。

  

 Date date1 = new Date();

 

   System.out.println(date1); //Thu Jun 16 19:18:56 CST 2022

  

 

  1.2 获取日期毫秒数

  getTime()

  

System.out.println(date1.getTime()); //1655378336808

 

  System.out.println(System.currentTimeMillis()); //通过系统获取时间1655378336867

  

 

  1.3 日期格式化(从Date到String)

  format(Date date)

  

SimpleDateFormat sdf1 = new SimpleDateFormat();

 

  sdf1.applyPattern("yyyy-MM-dd HH:mm:ss"); //日期格式

  System.out.println(sdf1.format(date1)); //2022-06-16 19:18:56

  SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

  System.out.println(sdf3.format(new Date()));

  

 

  源码

  

public final String format(Date date)

 

   return format(date, new StringBuffer(),

   DontCareFieldPosition.INSTANCE).toString();

  

 

  字符串格式化的日期格式串的含义

  

//yyyy:四位的年 yy:两位的年

 

  //MM 月份(0-11,代表1-12月)

  //DD 年中的天数

  //dd 月份中的天数(当前的天数,第几天)

  //HH 24小时制(0-23)

  //hh 12小时制(1-12)

  //mm 分钟

  //ss 秒数

  //SSS 毫秒

  

 

  1.4 日期解析(从String到Date)

  parse(String source)

  

SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

 

  String dateStr = "2021-06-16 11:45:45";

  Date date2 = null;

  try {

   //转换日期时,需要进行异常处理,处理ParseException,因为日期字符串可能不匹配

   date2 = sdf3.parse(dateStr);

   System.out.println(date2); //Wed Jun 16 11:45:45 CST 2021

  } catch (ParseException e) {

   e.printStackTrace();

  

 

  源码

  

public Date parse(String source) throws ParseException

 

   ParsePosition pos = new ParsePosition(0);

   Date result = parse(source, pos);

   if (pos.index == 0)

   throw new ParseException("Unparseable date: \"" + source + "\"" ,

   pos.errorIndex);

   return result;

  

 

  1.5 日期比较

  

//日期比较,日期是对象,不可以直接使用比较运算符进行比较

 

  

 

  方式1:直接比较两个日期对应的毫秒数,谁大,谁的日期就大(晚)

  

 String beginTime = new String("2020-08-09 13:32:20");

 

   String endTime = new String("2099-10-08 11:21:32");

   SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

   Date beginDate = df.parse(beginTime);

   Date endDate = df.parse(endTime);

   //因为时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。所以毫秒数越大时间越晚

   if(beginDate.getTime() endDate.getTime()){ //beginDate is before endDate

   System.out.println("beginDate is before endDate");

   }else{

   System.out.println("beginDate is after endDate");

  

 

  方式2:借助Date的自带比较方法:before和after

  

if (beginDate.before(endDate)) {

 

   System.out.println("beginDate is before endDate");//beginDate is before endDate

  if (endDate.after(beginDate)) {

   System.out.println("endDate is after beginDate");//endDate is after beginDate

  

 

  1.6 时间增加

  增加毫秒数

  

 //在当前基础上,增加1小时30分钟

 

   Date date3 = new Date();

   System.out.println("当前时间:"+sdf3.format(date3));//2022-06-16 19:50:20

   //增加1小时30分钟,需要获取当前毫秒数,在加上1小时30分钟毫秒数

   long time3 = date3.getTime();

   long addTime = (60+30)*60*1000;

   //根据毫秒数,转换为日期对象

   Date date4 = new Date(time3 + addTime);

   System.out.println("新时间:"+sdf3.format(date4));//2022-06-16 21:20:20

  

 

  2、Calendar

  2.1创建日历类对象

  创建日历类对象,不是new出来的,而是通过日历类自带的静态方法getInstance,获取;

  

 Calendar calendar = Calendar.getInstance();

 

  

 

  源码

  

public static Calendar getInstance()

 

   return createCalendar(TimeZone.getDefault(),

   Locale.getDefault(Locale.Category.FORMAT));

  

 

  2.2获取相关信息

  

 //获取年份

 

  int year = calendar.get(Calendar.YEAR);

  System.out.println("当前年份:"+year);//2022

  //获取月份,0-11代表1-12月,真实月份要+1

  int month = calendar.get(Calendar.MONTH);

  System.out.println("当前第几个月份:"+month);//5 代表6月份

  //获取天数,是一年中哪一天

  int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);

  System.out.println("当前天是一年中的第:"+dayOfYear); //167

  

 

  2.3 通过日历类对日期进行操作

  

//通过日历类,获取当前日期对象

 

  Date date = calendar.getTime();

  System.out.println("当前日期:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date)); //2022-06-16 20:03:10

  //在当前时间的基础上,灵活的添加时间,增加1小时30分钟

  calendar.add(Calendar.HOUR,1);

  calendar.add(Calendar.MINUTE,30);

  System.out.println("新日期:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime())); //2022-06-16 21:33:10

  //通过日历类,创建时间对象

  Calendar calendar2 = Calendar.getInstance();

  calendar2.set(Calendar.YEAR,2021);

  calendar2.set(Calendar.MONTH,6-1);

  calendar2.set(Calendar.DAY_OF_MONTH,16);

  System.out.println("新日期:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime())); //2022-06-16 21:33:10

  

 

  以上就是java实用类(四)(java的实用性)的详细内容,想要了解更多 java实用类(四)的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: