学到秃头的Java进阶用法Date and Time

1.日期和时间的概念

       单词Date是指日期,Time是指时间。如2020-01-01 00:00:00 这个写法里2020-01-01是日期,00:00:00是时间。

!](https://img-blog.csdnimg.cn/20201226004851237.jpg)

2.时间之始System.currentTimeMillis()

       System.currentTimeMillis()该方法返回的是自1970年1月1日开始,至当前经过了多少毫秒值,该值是一个long型整数。System.currentTimeMillis()该方法常常用来计算方法执行时间。

public static void measureExecuteTime(){
    long start = System.currentTimeMillis();
    for (int i=0;i<1000;i++){
        System.out.print("Hello Java\t");
    }
    long end   = System.currentTimeMillis();
    System.out.println();
    System.out.println("执行时间:"+(end - start));
}

3.util.Date

       util.Date是java最初的日期时间用法,因为执行的速度很快,所以不一定先new的Date就一定比后new的Date小,二者还可能是一样的。

public static void utilDate(){
    Date date1 = new Date();
    Date date2 = new Date();
    //比较时间前后
    System.out.println(date1.compareTo(date2));
    System.out.println(date1.before(date2));
}

4.util.Date和sql.Date的区别与用法

       java.util.Date是一个完整的日期加时间的类型,而java.sql.Date只有日期,示例如下。

long timeMillis = System.currentTimeMillis();
Date date = new Date(timeMillis);
java.sql.Date date1 = new java.sql.Date(timeMillis);
System.out.println(date);
System.out.println(date1);

5.Calendar的用法

       GregorianCalendar表示的是公历时间。

//获取Calendar的两种方式
Calendar instance = Calendar.getInstance();
Calendar calendar = new GregorianCalendar();
//获取年
int year = calendar.get(Calendar.YEAR);
//获取月
int month = calendar.get(Calendar.MONTH);
//获取日
int date = calendar.get(Calendar.DATE);
//24小时制的小时
int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
//12小时制的小时
int hour = calendar.get(Calendar.HOUR);
System.out.println(hourOfDay);
System.out.println(hour);
//获取上个月当前时间
calendar.add(Calendar.MONTH,-1);
//获取指定的时间
calendar.set(Calendar.YEAR,2000);

6.TimeZone时区

       TimeZone顾名思义就是时区的意思,通过时区可以进行不同时区的转换。

//获得时区的两种方式
TimeZone losAngelesTimeZone = TimeZone.getTimeZone("America/Los_Angeles");
//使用中国的时区是写Shanghai,没有Beijing
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
//查看当前系统日历的时区
TimeZone timeZoneOfCalendar = calendar.getTimeZone();

7.如何对时间进行格式化

       要特别注意的是"yyyy-MM-dd hh:mm:ss" 和 “yyyy-MM-dd HH:mm:ss"的区别,HH是24小时,如果用到一般写成"yyyy-MM-dd HH:mm:ss”。

/**
 * 如何对时间进行格式化
 * 方式一
 */
//"yyyy-MM-dd hh:mm:ss" 和 "yyyy-MM-dd HH:mm:ss"的区别,HH是24小时,如果用到一般写成"yyyy-MM-dd HH:mm:ss"
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = format.format(new Date());
System.out.println(dateString);
try {
    Date parse = format.parse(dateString);
} catch (ParseException e) {
    e.printStackTrace();
}

8.LocalDate和LocalTime

       LocalDate和LocalTime的用法,二者的api用法基本相同,下面只进行LocalDate的说明。故名思意LocalDate是指日期,只涉及到日期的时候用LocalDate,只涉及时间的时候用LocalTime。

LocalDate localDate = LocalDate.now();
int   localDateYear       = localDate.getYear();
Month localDateMonth      = localDate.getMonth();
int   dayOfMonth = localDate.getDayOfMonth();
int   dayOfYear  = localDate.getDayOfYear();
DayOfWeek dayOfWeek = localDate.getDayOfWeek();
/**
 * LocalDate还有用于日期的加减,通过名字我们就很容易看出他们的用法
 * plusDays()
 * plusWeeks()
 * plusMonths()
 * plusYears()
 * minusDays()
 * minusWeeks()
 * minusMonths()
 * minusYears()
 */
//年份加1
LocalDate localDate1 = localDate.plusYears(1);

9.LocalDateTime的用法

        LocalDateTime可以看作LocalDate和LocalTime的合体,即可以对日期进行操作也可以对时间进行修改。

        获取当前的LocalDateTime:

LocalDateTime now1 = LocalDateTime.now();

        获取某一指定LocalDateTime:

LocalDateTime localDateTime2 =LocalDateTime.of(2020, 2, 2, 2, 2, 2, 123);

在这里插入图片描述

总结

        突然想起了刚来上海工作的时候,2019年1月,不知不觉就已经两年了,好像已经不复当年那个青涩的少年,刚好工作的这段时间内又遇到疫情,工作上并没有什么突破,唯一做的就是坚持学习了,告诫自己,不忘初心,有时候可能会感到无能为力,但至少还有能做的,尽力奔跑。
在这里插入图片描述

  • 8
    点赞
  • 4
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页

打赏

兴趣使然的程序猿

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值