Java常用日期操作
对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
*/
- //日期转字符串,根据需要调整格式
- @Test
- public void DateToString(){
- Date currentTime = new Date();
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String dateString = formatter.format(currentTime);
- System.out.println(dateString);
- }
- //字符串转日期
- @Test
- public void StrToDate() throws ParseException {
- String dateStr = "2019-01-19";
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- Date date = null;
- date = format.parse(dateStr);
- System.out.println(date);
- }
- //获取本月第一天
- @Test
- public void getMonthFirstDay() throws ParseException {
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- Calendar cal=Calendar.getInstance();//获取当前日期
- cal.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
- String monthFirstDay = format.format(cal.getTime());
- System.out.println(monthFirstDay);
- }
- //获取本月最后一天
- @Test
- public void getMonthLastDay() throws ParseException {
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- Calendar cal=Calendar.getInstance();//获取当前日期
- cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
- String monthLastDay = format.format(cal.getTime());
- System.out.println(monthLastDay);
- }
- //获取上个月第一天。最后一天同理
- @Test
- public void getLastMonthFirstDay() throws ParseException {
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- Calendar cal=Calendar.getInstance();//获取当前日期
- cal.add(Calendar.MONTH, -1);
- cal.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
- String monthFirstDay = format.format(cal.getTime());
- System.out.println(monthFirstDay);
- }
- //通过Calendar获取年月日时分秒
- @Test
- public void testCalendar() throws ParseException {
- Calendar cal = Calendar.getInstance();
- // 赋值时年月日时分秒常用的6个值,注意月份下标从0开始,所以取月份要+1
- System.out.println("年:" + cal.get(Calendar.YEAR));
- System.out.println("月:" + (cal.get(Calendar.MONTH) + 1));
- System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));
- System.out.println("时:" + cal.get(Calendar.HOUR_OF_DAY));
- System.out.println("分:" + cal.get(Calendar.MINUTE));
- System.out.println("秒:" + cal.get(Calendar.SECOND));
- }
- //得到两个时间相隔的天数
- @Test
- public void getBetweenDay() throws ParseException{
- String dateStr1 = "2019-01-01";
- String dateStr2 = "2019-01-19";
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- Date date1 = format.parse(dateStr1);
- Date date2 = format.parse(dateStr2);
- Long inteverDay = (date2.getTime()-date1.getTime())/(1000*60*60*24);
- System.out.println(inteverDay);
- }
- //当前日期加一天
- @Test
- public void addCurrentDay() throws ParseException {
- String datess = "2019-02-28";
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- Date parse = format.parse(datess);
- Calendar cal=Calendar.getInstance();//获取当前日期
- cal.setTime(parse);
- cal.add(Calendar.DAY_OF_YEAR, +1);
- String monthFirstDay = format.format(cal.getTime());
- System.out.println(monthFirstDay);
- }
- //Calendar转换成date
- @Test
- public void CalToDate() throws ParseException {
- Calendar cal=Calendar.getInstance();
- Date date=cal.getTime();
- }
- //date转换成Calendar
- @Test
- public void DateToCal() throws ParseException {
- Calendar cal=Calendar.getInstance();
- Date date = new Date();
- cal.setTime(date);
- }
- //获得当前周周一的日期
- @Test
- public void getMonday(){
- Date date = new Date();
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- //monday可以替换成任意星期几
- c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
- String dateStr = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
- System.out.println(dateStr);
- }
- //判断两个时间是否在同一周
- public boolean isSameWeekDates(Date date1, Date date2) {
- Calendar cal1 = Calendar.getInstance();
- Calendar cal2 = Calendar.getInstance();
- cal1.setTime(date1);
- cal2.setTime(date2);
- int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
- if (0 == subYear) {
- if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)){
- return true;
- }
- } else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
- // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周
- if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)){
- return true;
- }
- } else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
- if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)){
- return true;
- }
- }
- return false;
- }
Java常用日期操作的更多相关文章
- java常用日期类总结
java 常用的日期类有三个Date.SimpleDateFormat.Calendar
- 菜鸡的Java笔记 日期操作类
日期操作类 Date 类与 long 数据类型的转换 SimpleDateFormat 类的使用 Calendar 类的使用 如 ...
- java 常用时间操作类,计算到期提醒,N年后,N月后的日期
package com.zjjerp.tool; import java.text.ParseException; import java.text.ParsePosition; import jav ...
- java 常用日期工具类的操作
获取指定日期的时间戳 /* * 获取指定日期的时间戳 * */ public static long getMillis(String date_str){ try { SimpleDateForma ...
- Java常用文件操作-2
上篇文章记录了常用的文件操作,这里记录下通过SSH服务器操作Linux服务器的指定路径下的文件. 这里用到了第三方jar包 jsch-0.1.53.jar, jsch-api 1.删除服务器上指定路径 ...
- java常用日期函数总结
请记得要引入java.util.Date和java.text.SimpleDateFormat两个包 1.计算某一月份的最大天数 Calendar time=Calendar.getInstance( ...
- Java常用文件操作-1
在我们的实际工作中经常会用到的文件操作,再此,将工作中碰到的做一个记录,以便日后查看. 1.复制文件夹到新文件夹下 /** * 复制文件夹下所有文件到指定路径 *@param oldPath *@pa ...
- java常用日期操作方法
package com.wujiangpo.test.util; import java.text.ParseException; import java.text.SimpleDateFormat; ...
- java常用日期类型转换
import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import j ...
随机推荐
- Linux命令行文本工具
浏览文件 cat 查看文件内容 more 以翻页形式查看文件内容(只能向下翻页) less 以翻页形式查看文件内容(可以上下翻页) head 查看文件的头几行(默认10行) tail 查看文件的尾几行 ...
- MyBatis源码解析(十二)——binding绑定模块之MapperRegisty
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6758456.html 1.回顾 之前解析了解析模块parsing,其实所谓的解析模块就是为 ...
- 简单了解static
初学java,面对着这个static修饰符,愣是琢磨了两天时间,还在今天琢磨透了,现在将悟到的东西记录下来: 1.static修饰符表示静态修饰符,其所修饰的内容(变量.方法.代码块暂时学到这三种)统 ...
- 第5章 Linux上管理文件系统
5.1 机械硬盘 机械硬盘由多块盘片组成,它们都绕着主轴旋转.每块盘片上下方都有读写磁头悬浮在盘片上下方,它们与盘片的距离极小.在每次读写数据时盘片旋转,读写磁头被磁臂控制着不断的移动来读取其中的数据 ...
- man exportfs(exportfs命令中文手册)
本人译作集合:http://www.cnblogs.com/f-ck-need-u/p/7048359.html exportfs() System Manager's Manual exportfs ...
- python装饰器1:函数装饰器详解
装饰器1:函数装饰器 装饰器2:类装饰器 装饰器3:进阶 先混个眼熟 谁可以作为装饰器(可以将谁编写成装饰器): 函数 方法 实现了__call__的可调用类 装饰器可以去装饰谁(谁可以被装饰): 函 ...
- JS脚本获取URL参数并调用
首先增加一个脚本库,可以是Zepto或者jQuery的,然后获取之后使用switch进行分流处理 <script type="text/javascript" src=&qu ...
- [转][Angularjs]$http.post与$.post
本文转自:https://www.cnblogs.com/wolf-sun/p/6878868.html 摘要 在angularjs发送post请求的时候,确实很困惑,在传递json数据的时候,总会遇 ...
- 第一册: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. ...
- nginx静态资源文件无法访问,403 forbidden错误
在安装 nginx 服务器后,我想把网站的根目录设置为 /root/www/ ,于是对 nginx 的 nginx.conf 文件进行配置 先打开 nginx.conf #user nobody; w ...