java 的Date 日期相关操作
- String 与 Date互转
 (1)基于SimpleDateFormat实现:package com.bky.df; import java.text.ParseException; 
 import java.text.ParsePosition;
 import java.text.SimpleDateFormat;
 import java.util.Date; public class DateLangUtils{
 public static void main(String[] args) throws ParseException {
 Date nowDate = new Date();
 String formatString = "yyyy-MM-dd HH:mm:ss";
 String dateString = "2018-12-02 16:33:15";
 System.out.println(getString(nowDate, formatString));
 System.out.println(getDate(dateString, formatString));
 System.out.println(getDatePos(dateString, formatString));
 } /**
 * 使用SimpleDateFormat格式化Date
 *
 * @param date
 * @param formatString
 * @return
 */
 public static String getString(Date date, String formatString) {
 SimpleDateFormat formatter = new SimpleDateFormat(formatString);
 return formatter.format(date);
 } /**
 * 使用SimpleDateFormat解析日期字符串
 *
 * @param dateString
 * @param formatString
 * @return
 * @throws ParseException
 */
 public static Date getDate(String dateString, String formatString) throws ParseException {
 SimpleDateFormat formatter = new SimpleDateFormat(formatString);
 return formatter.parse(dateString);
 } /**
 * 使用SimpleDateFormat解析日期字符串
 *
 * @param dateString
 * @param formatString
 * @return
 */
 public static Date getDatePos(String dateString, String formatString) {
 SimpleDateFormat formatter = new SimpleDateFormat(formatString);
 return formatter.parse(dateString, new ParsePosition(0));
 }
 }(2)使用commons组件实现 import java.text.ParseException; 
 import java.util.Date; import org.apache.commons.lang3.time.DateFormatUtils;
 import org.apache.commons.lang3.time.DateUtils; public static void main(String[] args) throws ParseException {
 Date nowDate = new Date();
 String formatString = "yyyy-MM-dd HH:mm:ss";
 String dateString = "2018-12-02 16:33:15";
 System.out.println(DateFormatUtils.format(nowDate, formatString));
 System.out.println(DateUtils.parseDate(dateString, formatString));
 }
- 对日期的相关操作
 基于Calendar实现Calendar cal = Calendar.getInstance(); 
 // 设置Calendar时间(1.Date 2.longofmills)
 cal.setTime(new Date());
 cal.setTimeInMillis(System.currentTimeMillis()); // 设置年月日,时分秒,毫秒
 cal.set(Calendar.YEAR, cal.get(Calendar.YEAR));
 // Calendar.MONTH 从0开始表示1月,需要转换展示/设置
 cal.set(Calendar.MONTH, cal.get(Calendar.MONTH));
 cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH));
 // 24小时制
 cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY));
 // 12小时制
 cal.set(Calendar.HOUR, cal.get(Calendar.HOUR));
 cal.set(Calendar.MINUTE, cal.get(Calendar.MINUTE));
 cal.set(Calendar.SECOND, cal.get(Calendar.SECOND));
 cal.set(Calendar.MILLISECOND, cal.get(Calendar.MILLISECOND)); // 设置与星期相关参数
 // 设置当周星期周几(1为星期日,7为星期六)
 cal.set(Calendar.DAY_OF_WEEK, cal.get(Calendar.DAY_OF_WEEK));
 // 设置当月第几个星期(默认地区是从星期日开始算,以日历计算第几周)
 cal.set(Calendar.WEEK_OF_MONTH, cal.get(Calendar.WEEK_OF_MONTH));
 // 设置当月第几个星期(设置按当月的天数算第几周,7天一周)
 cal.set(Calendar.DAY_OF_WEEK_IN_MONTH, cal.get(Calendar.DAY_OF_WEEK_IN_MONTH));
 // 设置一年中第几个星期
 cal.set(Calendar.WEEK_OF_YEAR, cal.get(Calendar.WEEK_OF_YEAR)); // 设置当月第一天
 cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
 cal.set(Calendar.HOUR_OF_DAY, 0);
 cal.set(Calendar.MINUTE, 0);
 cal.set(Calendar.SECOND, 0);
 cal.set(Calendar.MILLISECOND, 0); // 设置当月最后一天
 cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
 cal.set(Calendar.HOUR_OF_DAY, 0);
 cal.set(Calendar.MINUTE, 0);
 cal.set(Calendar.SECOND, 0);
 cal.set(Calendar.MILLISECOND, 0);
- 计算两个时间之差
/** 
 * 根据需要计算并格式化两个时间之差
 *
 * @param beforeDate
 * @param afterDate
 * @param formatPatterns(长度一定要为6,如果不需要则传null)
 * eg:new String[]{ "年", null, "天", "时", "分", "秒" }
 * @return
 */
 public static String formatDistanceDate(Date beforeDate, Date afterDate, String[] formatPatterns) {
 if (formatPatterns == null || formatPatterns.length < 6)
 return "";
 long instance = (afterDate.getTime() - beforeDate.getTime()) / 1000;
 StringBuilder dateInstanceFormatBuffer = new StringBuilder();
 if (formatPatterns[0] != null) {
 long year = instance / (3600l * 24 * 365);
 if (year > 0) {
 dateInstanceFormatBuffer.append(year);
 dateInstanceFormatBuffer.append(formatPatterns[0]);
 instance = instance % (3600l * 24 * 365);
 }
 }
 if (formatPatterns[1] != null) {
 long month = instance / (3600l * 24 * 30);
 if (month > 0) {
 instance = instance % (3600l * 24 * 30);
 dateInstanceFormatBuffer.append(month);
 dateInstanceFormatBuffer.append(formatPatterns[1]);
 }
 }
 if (formatPatterns[2] != null) {
 long day = instance / (3600l * 24);
 if (day > 0) {
 instance = instance % (3600l * 24);
 dateInstanceFormatBuffer.append(day);
 dateInstanceFormatBuffer.append(formatPatterns[2]);
 }
 }
 if (formatPatterns[3] != null) {
 long hour = instance / 3600;
 if (hour > 0) {
 instance = instance % 3600;
 dateInstanceFormatBuffer.append(hour);
 dateInstanceFormatBuffer.append(formatPatterns[3]);
 }
 }
 if (formatPatterns[4] != null) {
 long min = instance / 60;
 if (min > 0) {
 dateInstanceFormatBuffer.append(min);
 dateInstanceFormatBuffer.append(formatPatterns[4]);
 }
 }
 if (formatPatterns[5] != null) {
 long second = instance % 60;
 if (second > 0) {
 dateInstanceFormatBuffer.append(second);
 dateInstanceFormatBuffer.append(formatPatterns[5]);
 }
 }
 return dateInstanceFormatBuffer.toString();
 }
java 的Date 日期相关操作的更多相关文章
- Java基础 - Date的相关使用(获取系统当前时间)
		前言: 在日常Java开发中,常常会使用到Date的相关操作,如:获取当前系统时间.获取当前时间戳.时间戳按指定格式转换成时间等.以前用到的时候,大部分是去网上找,但事后又很快忘记.现为方便自己今后查 ... 
- Java中Date各种相关用法
		Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=Calendar.getInstance(); time.clear(); time.set ... 
- java 线程  原子类相关操作演示样例 thinking in java4  文件夹21.3.4
		java 线程 原子类相关操作演示样例 package org.rui.thread.volatiles; import java.util.Timer; import java.util.Time ... 
- Java日期相关操作
		1.获得日期 在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date 类不便于实现国际化,其实从 JDK1.1 开始,就更推荐使用 java.uti ... 
- Java 各种时间日期相关的操作
		目录 1.获取当前时间的时间戳 1.1.时间进制 1.2.获取毫秒级时间戳 1.3.获取纳秒级时间戳 2.java.util包 2.1.Data 2.2.Calendar 3.java.time包 3 ... 
- JAVA日期——java.util.date类的操作
		package com.hxzy.time; import java.text.SimpleDateFormat;import java.util.Date; public class DateDem ... 
- Java工具类——日期相关的类
		前言 在日常的开发工作当中,我们经常需要用到日期相关的类(包括日期类已经处理日期的类),所以,我就专门整理了一篇关于日期相关的类,希望可以帮助到大家. 正文 一.日期类介绍 在 Java 里面,操作日 ... 
- java创建Date日期时间笔记
		(1)public Date() 创建的日期类对象的日期时间被设置成创建时刻相对应的日期时间. 例: Java代码 1.Date today=new Date(); //today被设置成创建时刻相 ... 
- 数据结构Java实现04---树及其相关操作
		首先什么是树结构? 树是一种描述非线性层次关系的数据结构,树是n个数据结点的集合,这些集结点包含一个根节点,根节点下有着互相不交叉的子集合,这些子集合便是根节点的子树. 树的特点 在一个树结构中,有且 ... 
随机推荐
- bis.org
			巴塞尔官网包含了很多文档,看起来容易晕,简单说明一下. 首先,文档有几种类型(https://www.bis.org/bcbs/help/publ_types.htm): S: Standards 最 ... 
- Netty 基本组件与线程模型
			Netty 的学习内容主要是围绕 TCP 和 Java NIO 这两个点展开的,由于 Netty 是基于 Java NIO 的 API 之上构建的网络通讯框架,Java NIO 中的几个组件,都能在 ... 
- Python3.7 练习题(三) 将指定目录下的图片进行批量尺寸大小处理
			# 将指定目录下的图片进行批量尺寸大小处理 #修改图片尺寸 导入Image os 快捷键 alt+enter import os from PIL import Image def process_i ... 
- jmeter 上传附件
			1.查看上传接口参数,然后写到jmeter中 2.在file upload中parameterName填写main,MIME Type中填写request中的Content-Type 
- Build up java environment(配置java环境)
			1,配置环境变量 我的电脑,右键计算机图标,点击“属性” 点击“高级系统设置” 点击“环境变量” “系统变量”一栏,点击“新建” 弹出输入“变量名”.“变量值”窗口 “变量名”输入“JAVA_HOME ... 
- 自建yum仓库,分别为网络源和本地源
			配置本地源 建立本地源目录 [root@qingcheng-db lgp]#mkdir /mnt/cdrom [root@qingcheng-db lgp]#mkdir /yum 挂载Centos光盘 ... 
- java面试总躲不过的并发(二):volatile原理 + happens-before原则
			一.happens-before原则 同一个线程中的,前面的操作 happens-before 后续的操作.(即单线程内按代码顺序执行.但是,在不影响在单线程环境执行结果的前提下,编译器和处理器可以进 ... 
- 【缓存】介绍和使用场景 MEMCACHE REDIS
			缓存缓存就是在内存中存储的数据备份,当数据没有发生本质改变的时候,我们就不让数据的查询去数据库进行操作,而去内存中取数据,这样就大大降低了数据库的读写次数,而且从内存中读数据的速度比去数据库查询要快一 ... 
- <%@taglib prefix="c" uri="http://java.sun.com/jsp/jst1/core"%>报错
			查了一晚上 刚开始觉得最靠谱的还是这个说法: 1.下载jakarta-taglibs-standard-1.1.2.zip(在Weblogic中必须下载1.0版 http://jakarta.apa ... 
- python练习题3:N的多次方
			N的多次方 描述 编写一个程序,计算输入数字N的0次方到5次方结果,并依次输出这6个结果,输出结果间用空格分隔.其中:N是一个整数或浮点数. print()函数可以同时输出多个信息,采用如下方法可以使 ... 
