• Java中日期时间用法


    1、日期类

    该对象内部封装了当前系统的毫秒值

    从1970-1-1 0:0:0往后每过一秒,数值加1000

    2,对象创建

    1》无参构造方法

    Date date=new Date();

    封装当前操作系统的时间戳

    2》带参构造方法

    Date date =new Date(long milis);

    封装指定时间戳

    3、主要方法

    1》修改对象内部时间戳

    void setTime(long milis)

    2>获取对象内部时间戳

    long getTime()

    java.text.SimpleDateFormat

    1、日期格式化,可以按照指定的格式将date对象格式化为字符串,也可以将字符串解析为date对象

    2、对象创建

    SimpleDateFormat sdf=new SimpleDateFormat("指定格式");

    yyyy:四位数年份

    MM:2位数月份

    dd:2位数日期

    HH:0-23小时

    mm:分钟

    ss:秒

    3、主要方法

    1》按照指定格式将日期对象格式化位字符串

    String fomat(Date date)

    2>按指定格式将字符串解析为日期对象

    Date date(String dateStr)

    java.util.Calender

    1、日历类,其内部主要封装日期时间进行计算的相关方法

    2、对象创建

    1》通过构造方法创建对象

    Calendar c=new GregorianCalendar();

    2》通过静态方法创建

    Calendar c=Calendar.getInstance();

    3、主要方法

    1》get()

    获取指定字段值

    2》getActuaiMaxmum()

    获取指定字段上最大值

    3》add()

    在指定字段上增加一个数值后的日期

    4>setTime()

    date转Calendar

    5>getTime()

    Calendar转Date

    4,常量字段

    1.>YEAR 年

    2>MONTH 月

    3>DAY_OF_MONTH 日

    4>HOUR_OF_DAY 时

    5>MINUTE 分

    6>SECOND 秒

    7>MILLISECONG 毫秒

    8>DAY_OF_YEAR 年中天数

    9>WEEK_OF_YEAR 年中星期数

    10>WEEK_OF_MONTH 月中周数

    11>DAY_OF_WEEK 星期

    注意:

    1》在系统中使用0-11来存储1-12月份,所以:我们在获取月份加1,存储月份减1

    2》一周中第一天是周日,最后一天是周六;所以获取到星期之后要减一,减1为0说明是周日

    存入星期要加一,周日存储1

    LocalDate

    1、封装日期

    2、//创建日期对象

    //根据当前操作系统的的日期创建对象

    LocalDate date =LocalDate.now();

    //最小日期

    date =LocalDate.MIN;

    //最大日期

    date =LocalDate.MAX;

    //将yyyy-MM-dd格式字符串解析为日期对象

    //月和日小于10的,前面需要带0

    date =LocalDate.parse("2008-12-20");

    //自己指定格式,将字符串解析为日期对象

    date=LocalDate.parse("2012/12/12",DateTimeFormatter.ofPattern("yyyy/MM/dd"));

    //自己指定年月日

    date=LocalDate.of(2008, 8, 8);

    3、主要方法

    1》getYear()

    2>getMonthValue()

    3>getDayOfMonth()

    4>getDayOfYear()

    5>getDayOfWeek()

    LocalTime

    1、主要用于当前操作系统时间的创建

    2、//创建时间对象

    //根据当前操作系统的的时间创建对象

    LocalTime time =LocalTime.now();

    //最小时间

    time =LocalTime.MIN;

    //最大时间

    time =LocalTime.MAX;

    //将HH:mm:ss格式字符串解析为时间对象

    //时分秒小于10的,前面需要带0

    time =LocalTime.parse("16:23:34");

    //自己指定格式,将字符串解析为时间对象

    time=LocalTime.parse("12/12/12",DateTimeFormatter.ofPattern("HH/mm/ss"));

    //自己指定年月日

    time=LocalTime.of(17,10,9);

    3、主要方法

    1》getHour()

    2>getMinute()

    3>getSecond()

    4>getNano()

    LocalDateTime

    1、主要用于当前操作系统日期时间的创建

    2、对象创建和主要方法参考上面写法

    1. import java.util.Date;
    2. public class Test2 {
    3. public static void main(String[] args) {
    4. //获取当前操作系统的毫秒值(时间戳)
    5. //从 从1970-1-1 0:0:0到当前时间之间的毫秒值
    6. long t=System.currentTimeMillis();
    7. System.out.println("t="+t+"毫秒");
    8. System.out.println(t/1000/60/60/24);
    9. //默认封装当前操作系统的毫秒值
    10. Date date=new Date();
    11. System.out.println(date);
    12. //获取date对象中封装的毫秒值
    13. long t1=date.getTime();
    14. System.out.println("t1="+t1);
    15. //修改date对象中封装的毫秒值
    16. date.setTime(0);
    17. System.out.println("date;"+date);
    18. //创建date对象时,自己指定其内部封装的毫秒值
    19. date =new Date(3*60*1000);
    20. System.out.println("date="+date);
    21. System.out.println(date.after(date));
    22. }
    23. }
    1. import java.text.ParseException;
    2. import java.text.SimpleDateFormat;
    3. import java.time.LocalDate;
    4. /*
    5. * .Calender日历类
    6. */
    7. import java.util.Calendar;
    8. import java.util.Date;
    9. import java.util.GregorianCalendar;
    10. import java.util.Scanner;
    11. public class Test4 {
    12. //创建对象(格里高利里:公历)
    13. public static void main(String[] args) throws ParseException {
    14. Calendar c1=new GregorianCalendar();
    15. System.out.println(c1);
    16. //根据当前操作系统所在时区创建对象
    17. Calendar c2=Calendar.getInstance();
    18. System.out.println(c2);
    19. //获取年月日时分秒
    20. int year=c1.get(Calendar.YEAR);
    21. //在系统中使用0-11来存储1-12月份,
    22. //所以:我们在获取月份加1,存储月份减1
    23. int month=c1.get(Calendar.MONTH)+1;
    24. int day=c1.get(Calendar.DAY_OF_MONTH);
    25. int hour=c1.get(Calendar.HOUR_OF_DAY);
    26. int minute =c1.get(Calendar.MINUTE);
    27. int second=c1.get(Calendar.SECOND);
    28. int milliSecond=c1.get(Calendar.MILLISECOND);
    29. System.out.println("年:"+year);
    30. System.out.println("月:"+month);
    31. System.out.println("日:"+day);
    32. System.out.println("时:"+hour);
    33. System.out.println("分:"+minute);
    34. System.out.println("秒:"+second);
    35. System.out.println("毫秒:"+milliSecond);
    36. //获取一年中的第多少天
    37. int dayOfYear=c1.get(Calendar.DAY_OF_YEAR);
    38. System.out.println("年中天数:"+dayOfYear);
    39. //获取本周是今年第几周
    40. int b=c1.get(Calendar.DAY_OF_WEEK);
    41. System.out.println(b);
    42. System.err.println("=++++++++++++++");
    43. int a=c1.get(Calendar.DAY_OF_MONTH);
    44. System.out.println(a);
    45. int weekOfYear=c1.get(Calendar.WEEK_OF_YEAR);
    46. System.out.println("年中周数:"+weekOfYear);
    47. //获取本周是这个月的第几周
    48. int dayofYear2=c1.get((Calendar.DAY_OF_YEAR));
    49. System.out.println(dayofYear2);
    50. int weekOfMonth=c1.get(Calendar.WEEK_OF_MONTH);
    51. System.out.println("月中周数:"+weekOfMonth);
    52. //获取星期
    53. //一周中第一天是周日,最后一天是周六
    54. //周日 周一,周二,周三,周四,周五,周五
    55. //1 2 3 4 5 6 7
    56. //所以获取到星期之后要减一,减1为0说明是周日
    57. //存入星期要加一,周日存储1
    58. int dayWeek=c1.get(Calendar.DAY_OF_WEEK);
    59. System.out.println("今天是星期:"+(dayWeek-1==0?"日":dayWeek-1));
    60. //今天是本月的第几个星期几
    61. int n=c1.get(Calendar.DAY_OF_WEEK_IN_MONTH);
    62. System.out.println(n);
    63. //获取时区(CST东八区)
    64. System.out.println(c1.get(Calendar.ZONE_OFFSET));
    65. //获取指定字段上的最大值
    66. //1》获取今年最大天数
    67. int maxDayOfYear=c1.getActualMaximum(Calendar.DAY_OF_YEAR);
    68. System.out.println("今年最大天数:"+maxDayOfYear);
    69. //2》获取本月最大天数
    70. int maxDayOfMonth=c1.getActualMaximum(Calendar.DAY_OF_MONTH);
    71. System.out.println("本月最大天数:"+maxDayOfMonth);
    72. System.out.println("+++++++++++++++");
    73. //1》获取今年最大星期数
    74. int maxWeekOfYear=c1.getActualMaximum(Calendar.WEEK_OF_YEAR);
    75. System.out.println("今年最大星期数:"+maxWeekOfYear);
    76. //在指定字段上增加一个数值后的日期
    77. //计算10000天之前日期
    78. //c1.add(Calendar.DAY_OF_MONTH,-100000);
    79. //计算100天后的日期
    80. c1.add(Calendar.DAY_OF_MONTH,10);
    81. System.out.println("年"+c1.get(Calendar.YEAR));
    82. System.out.println("月"+(c1.get(Calendar.MONTH)+1));
    83. System.out.println("日"+c1.get(Calendar.DAY_OF_MONTH));
    84. System.err.println("==================================");
    85. //修改日期
    86. //修改指定字段
    87. c2.set(Calendar.MONTH, Calendar.FEBRUARY);
    88. System.out.println("年"+c2.get(Calendar.YEAR));
    89. System.out.println("月"+(c2.get(Calendar.MONTH)+1));
    90. System.out.println("日"+c2.get(Calendar.DAY_OF_MONTH));
    91. //修改年月日
    92. c2.set(2010,9,15);
    93. System.out.println("年"+c2.get(Calendar.YEAR));
    94. System.out.println("月"+(c2.get(Calendar.MONTH)+1));
    95. System.out.println("日"+c2.get(Calendar.DAY_OF_MONTH));
    96. //修改年月日时分秒
    97. c2.set(2010,9,15,8,30,25);
    98. System.out.println("年"+c2.get(Calendar.YEAR));
    99. System.out.println("月"+(c2.get(Calendar.MONTH)+1));
    100. System.out.println("日"+c2.get(Calendar.DAY_OF_MONTH));
    101. System.out.println("==========================================");
    102. //Calendar和date之间转换
    103. //1》date转Calendar
    104. Date date=new Date();
    105. Calendar c3=Calendar.getInstance();
    106. c3.setTime(date);
    107. System.out.println("年"+c3.get(Calendar.YEAR));
    108. System.out.println("月"+(c3.get(Calendar.MONTH)+1));
    109. System.out.println("日"+c3.get(Calendar.DAY_OF_MONTH));
    110. //Calendar转Date
    111. Date d=c3.getTime();
    112. System.out.println("d="+d);
    113. System.out.println("============================================");
    114. }
    115. }
    1. import java.text.ParseException;
    2. import java.text.SimpleDateFormat;
    3. import java.util.Date;
    4. import java.util.Scanner;
    5. /*
    6. * .SimpleDateFormat日期格式工具类
    7. */
    8. public class Test3 {
    9. public static void main(String[] args) throws ParseException {
    10. //1、将日期格式化成字符串
    11. //创建date日期对象,封装当前操作系统时间戳
    12. Date date=new Date();
    13. System.out.println(date);
    14. //创建日期格式化类对象,并指定格式
    15. //格式:2020-07-14 09:41:28
    16. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    17. //按照指定格式将date对象格式化为字符串
    18. String dateStr=sdf.format(date);
    19. // System.out.println(dateStr);
    20. //2、将字符串解析为日期对象
    21. //定义字符串
    22. String str="2008/8/8";
    23. //创建日期格式化转换工具对象,并指定格式
    24. SimpleDateFormat sd=new SimpleDateFormat("yyyy/MM/dd");
    25. //按照指令格式将字符串解析为date日期对象
    26. Date d=sd.parse(str);
    27. System.out.println("d="+d);
    28. }
    29. }

     

  • 相关阅读:
    驱动——platform驱动总线三种匹配方式
    程序员面试金典 - 面试题 17.18. 最短超串
    Spring MVC中@RequestParam注解的功能是什么呢?
    列举强制类型转换和隐式类型转换方式
    【生育险报销】
    8 种现代 JavaScript 响应式模式
    大数据冷热分离方案
    Vue 3 属性绑定细节
    电脑重装系统
    XUST——Kcsoftware Part3 题目题解
  • 原文地址:https://blog.csdn.net/m0_72254454/article/details/126713893