对java中常用的日期操作进行整理。

1、日期格式化

/*
* 日期格式化类(必须掌握)
* API:
* G Era 标志符 Text AD
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800

*/

  1. //日期转字符串,根据需要调整格式
  2. @Test
  3. public void DateToString(){
  4. Date currentTime = new Date();
  5. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  6. String dateString = formatter.format(currentTime);
  7. System.out.println(dateString);
  8. }
  9.  
  10. //字符串转日期
  11. @Test
  12. public void StrToDate() throws ParseException {
  13. String dateStr = "2019-01-19";
  14. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  15. Date date = null;
  16. date = format.parse(dateStr);
  17. System.out.println(date);
  18. }
  19.  
  20. //获取本月第一天
  21. @Test
  22. public void getMonthFirstDay() throws ParseException {
  23. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  24. Calendar cal=Calendar.getInstance();//获取当前日期
  25. cal.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
  26. String monthFirstDay = format.format(cal.getTime());
  27. System.out.println(monthFirstDay);
  28. }
  29.  
  30. //获取本月最后一天
  31. @Test
  32. public void getMonthLastDay() throws ParseException {
  33. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  34. Calendar cal=Calendar.getInstance();//获取当前日期
  35. cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
  36. String monthLastDay = format.format(cal.getTime());
  37. System.out.println(monthLastDay);
  38. }
  39.  
  40. //获取上个月第一天。最后一天同理
  41. @Test
  42. public void getLastMonthFirstDay() throws ParseException {
  43. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  44. Calendar cal=Calendar.getInstance();//获取当前日期
  45. cal.add(Calendar.MONTH, -1);
  46. cal.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
  47. String monthFirstDay = format.format(cal.getTime());
  48. System.out.println(monthFirstDay);
  49. }
  50.  
  51. //通过Calendar获取年月日时分秒
  52. @Test
  53. public void testCalendar() throws ParseException {
  54. Calendar cal = Calendar.getInstance();
  55. // 赋值时年月日时分秒常用的6个值,注意月份下标从0开始,所以取月份要+1
  56. System.out.println("年:" + cal.get(Calendar.YEAR));
  57. System.out.println("月:" + (cal.get(Calendar.MONTH) + 1));
  58. System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));
  59. System.out.println("时:" + cal.get(Calendar.HOUR_OF_DAY));
  60. System.out.println("分:" + cal.get(Calendar.MINUTE));
  61. System.out.println("秒:" + cal.get(Calendar.SECOND));
  62. }
  63.  
  64. //得到两个时间相隔的天数
  65. @Test
  66. public void getBetweenDay() throws ParseException{
  67. String dateStr1 = "2019-01-01";
  68. String dateStr2 = "2019-01-19";
  69. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  70. Date date1 = format.parse(dateStr1);
  71. Date date2 = format.parse(dateStr2);
  72. Long inteverDay = (date2.getTime()-date1.getTime())/(1000*60*60*24);
  73. System.out.println(inteverDay);
  74. }
  75.  
  76. //当前日期加一天
  77. @Test
  78. public void addCurrentDay() throws ParseException {
  79. String datess = "2019-02-28";
  80. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  81. Date parse = format.parse(datess);
  82. Calendar cal=Calendar.getInstance();//获取当前日期
  83. cal.setTime(parse);
  84. cal.add(Calendar.DAY_OF_YEAR, +1);
  85. String monthFirstDay = format.format(cal.getTime());
  86. System.out.println(monthFirstDay);
  87. }
  88.  
  89. //Calendar转换成date
  90. @Test
  91. public void CalToDate() throws ParseException {
  92. Calendar cal=Calendar.getInstance();
  93. Date date=cal.getTime();
  94. }
  95.  
  96. //date转换成Calendar
  97. @Test
  98. public void DateToCal() throws ParseException {
  99. Calendar cal=Calendar.getInstance();
  100. Date date = new Date();
  101. cal.setTime(date);
  102. }
  103.  
  104. //获得当前周周一的日期
  105. @Test
  106. public void getMonday(){
  107. Date date = new Date();
  108. Calendar c = Calendar.getInstance();
  109. c.setTime(date);
  110. //monday可以替换成任意星期几
  111. c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
  112. String dateStr = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
  113. System.out.println(dateStr);
  114. }
  115.  
  116. //判断两个时间是否在同一周
  117. public boolean isSameWeekDates(Date date1, Date date2) {
  118. Calendar cal1 = Calendar.getInstance();
  119. Calendar cal2 = Calendar.getInstance();
  120. cal1.setTime(date1);
  121. cal2.setTime(date2);
  122. int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
  123. if (0 == subYear) {
  124. if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)){
  125. return true;
  126. }
  127. } else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
  128. // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周
  129. if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)){
  130. return true;
  131. }
  132. } else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
  133. if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)){
  134. return true;
  135. }
  136. }
  137. return false;
  138. }

Java常用日期操作的更多相关文章

  1. java常用日期类总结

    java 常用的日期类有三个Date.SimpleDateFormat.Calendar

  2. 菜鸡的Java笔记 日期操作类

    日期操作类        Date 类与 long 数据类型的转换        SimpleDateFormat 类的使用        Calendar 类的使用                如 ...

  3. java 常用时间操作类,计算到期提醒,N年后,N月后的日期

    package com.zjjerp.tool; import java.text.ParseException; import java.text.ParsePosition; import jav ...

  4. java 常用日期工具类的操作

    获取指定日期的时间戳 /* * 获取指定日期的时间戳 * */ public static long getMillis(String date_str){ try { SimpleDateForma ...

  5. Java常用文件操作-2

    上篇文章记录了常用的文件操作,这里记录下通过SSH服务器操作Linux服务器的指定路径下的文件. 这里用到了第三方jar包 jsch-0.1.53.jar, jsch-api 1.删除服务器上指定路径 ...

  6. java常用日期函数总结

    请记得要引入java.util.Date和java.text.SimpleDateFormat两个包 1.计算某一月份的最大天数 Calendar time=Calendar.getInstance( ...

  7. Java常用文件操作-1

    在我们的实际工作中经常会用到的文件操作,再此,将工作中碰到的做一个记录,以便日后查看. 1.复制文件夹到新文件夹下 /** * 复制文件夹下所有文件到指定路径 *@param oldPath *@pa ...

  8. java常用日期操作方法

    package com.wujiangpo.test.util; import java.text.ParseException; import java.text.SimpleDateFormat; ...

  9. java常用日期类型转换

    import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import j ...

随机推荐

  1. Linux命令行文本工具

    浏览文件 cat 查看文件内容 more 以翻页形式查看文件内容(只能向下翻页) less 以翻页形式查看文件内容(可以上下翻页) head 查看文件的头几行(默认10行) tail 查看文件的尾几行 ...

  2. MyBatis源码解析(十二)——binding绑定模块之MapperRegisty

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6758456.html 1.回顾 之前解析了解析模块parsing,其实所谓的解析模块就是为 ...

  3. 简单了解static

    初学java,面对着这个static修饰符,愣是琢磨了两天时间,还在今天琢磨透了,现在将悟到的东西记录下来: 1.static修饰符表示静态修饰符,其所修饰的内容(变量.方法.代码块暂时学到这三种)统 ...

  4. 第5章 Linux上管理文件系统

    5.1 机械硬盘 机械硬盘由多块盘片组成,它们都绕着主轴旋转.每块盘片上下方都有读写磁头悬浮在盘片上下方,它们与盘片的距离极小.在每次读写数据时盘片旋转,读写磁头被磁臂控制着不断的移动来读取其中的数据 ...

  5. man exportfs(exportfs命令中文手册)

    本人译作集合:http://www.cnblogs.com/f-ck-need-u/p/7048359.html exportfs() System Manager's Manual exportfs ...

  6. python装饰器1:函数装饰器详解

    装饰器1:函数装饰器 装饰器2:类装饰器 装饰器3:进阶 先混个眼熟 谁可以作为装饰器(可以将谁编写成装饰器): 函数 方法 实现了__call__的可调用类 装饰器可以去装饰谁(谁可以被装饰): 函 ...

  7. JS脚本获取URL参数并调用

    首先增加一个脚本库,可以是Zepto或者jQuery的,然后获取之后使用switch进行分流处理 <script type="text/javascript" src=&qu ...

  8. [转][Angularjs]$http.post与$.post

    本文转自:https://www.cnblogs.com/wolf-sun/p/6878868.html 摘要 在angularjs发送post请求的时候,确实很困惑,在传递json数据的时候,总会遇 ...

  9. 第一册:lesson thirty three。

    原文:A fine day. It is a fine day today. There are some clouds in the sky. But the sun is shining. Mr. ...

  10. nginx静态资源文件无法访问,403 forbidden错误

    在安装 nginx 服务器后,我想把网站的根目录设置为 /root/www/ ,于是对 nginx 的 nginx.conf 文件进行配置 先打开 nginx.conf #user nobody; w ...