java学习:日期的运算
时间:2022-04-24
本文章向大家介绍java学习:日期的运算,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
java.util.Date下的很多(构造)方法,已经被标识为"过时"方法,官方推荐使用Calendar类来处理日期的运算,下面是示例:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class HelloWorld {
public static void main(String[] args) {
//指定时间输出格式
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dt = new Date();
System.out.println("当前时间:" + sdf.format(dt));
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.YEAR,-1);//当时日期减1年
System.out.println("减1年:" + sdf.format(rightNow.getTime()));
rightNow.add(Calendar.MONTH,3);//(在刚才的结果上)再加3个月
System.out.println("再加3个月:" + sdf.format(rightNow.getTime()));
rightNow.add(Calendar.DAY_OF_YEAR,10);//(在刚才的结果上)再加10天
System.out.println("再加10天:" + sdf.format(rightNow.getTime()));
}
}
输出结果:
当前时间:2013-02-21 09:40:49 减1年:2012-02-21 09:40:49 再加3个月:2012-05-21 09:40:49 再加10天:2012-05-31 09:40:49
----------------------------------------------
如果要将某个日期中的 各部分(比如:年、月、日、星期...) 拆解出来,也很容易:
1 Date dt = new Date();
2 Calendar calendar = Calendar.getInstance();
3 calendar.setTime(dt);
4 System.out.println("当前日期:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dt));//当前日期:2013-02-28 16:22:37
5 System.out.println("年:" + calendar.get(Calendar.YEAR));//年:2013
6 System.out.println("月:" + (calendar.get(Calendar.MONTH)+1));//月:2 -注:月份是从0开始的
7 System.out.println("日:" + calendar.get(Calendar.DATE));//日:28
8 System.out.println("时(12小时制):" + calendar.get(Calendar.HOUR));//时:4(12小时制)
9 System.out.println("时(24小时制):" + calendar.get(Calendar.HOUR_OF_DAY));//时:16(24小时制)
10 System.out.println("分:" + calendar.get(Calendar.MINUTE));//分:30
11 System.out.println("秒:" + calendar.get(Calendar.SECOND));//秒:19
12 System.out.println("本月第" + calendar.get(Calendar.WEEK_OF_MONTH) + "周");//本月第5周
13 System.out.println("本年第" + calendar.get(Calendar.WEEK_OF_YEAR) + "周");//本年第9周
附:各种时间format掩码格式可参考 https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
- 【Go 语言社区】GO语言多核并行化的问题
- mysql执行计划看是否最优
- 通过IP定位区域的SQL优化思路(r10笔记第10天)
- Java基础-day06-知识点回顾与练习
- 【Go 语言社区】Golang语言的多核并行化例子
- 一条SQL语句的执行计划变化探究(r10笔记第9天)
- 【Go 语言社区】Web 通信 之 长连接、长轮询(long polling)--转
- Dubbo入门-协议;注册中心
- Oracle 12c PDB浅析(二)(r8笔记第29天)
- 【Go 语言社区】在 Go 语言中,如何正确的使用并发
- Data Guard高级玩法:通过闪回恢复failover备库 (r10笔记第7天)
- ajax跨域问题-web开发必会
- 在线重定义的补充测试(r10笔记第26天)
- 聊聊Data Guard中的DG Broker(r10笔记第24天)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Markdown笔记Ⅱ
- 使用 Ink!开发 Substrate ERC20 智能合约
- Python|Numpy的常用操作
- 提速72倍,在Python里面调用Golang函数
- JUC学习之基础
- 【DB笔试面试841】在Oracle中,如何跟踪tnsping过程?
- 系统设计:如何让系统高可用?
- 什么是事务隔离
- Python|Pandas的常用操作
- C++设计模式笔记(01)-设计模式的介绍
- 【DB笔试面试842】在Oracle中,如何启动Oracle数据库的监听日志?
- 【揭秘】C语言类型转换时发生了什么?
- JUC学习之8锁现象
- TensorFlow惊现大bug?网友:这是逼着我们用PyTorch啊!
- 机器学习|用Q-Learning走迷宫