日期工具类DateUtils

CreateTime--2017年5月27日08:48:00
Author:Marydon

  DateUtils.java-对日期类的进一步封装

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; /**
* 封装日期类
*
* @author Marydon
* @createTime 2017年5月27日上午8:49:50
* @updateTime
* @Email:Marydon2017@163.com
* @version:1.0.0
*/
public class DateUtils {
/**
* 对日期进行格式化
* @param date
* 要转换的日期
* @param pattern
* 希望转换成什么样的格式
* @return str
* 格式化后的日期字符串
*/
public static String dateFormat(Date date, String pattern){
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String str = sdf.format(date);
return str;
} /**
* 根据初始日期推算期望(向前/向后)日期
* @param initTime
* 初始日期(initTime可以是null、Date、String数据类型)
* @param n
* 向前/向后推算n天(n可以是正整数、0、负整数)
* @return
* 推算后的日期字符串
*/
public static String getCalculateDay(Object initTime,int n){
// 返回推算后的日期
String calculateDay = "";
try {
// 实例化日历类Calendar
Calendar calendar = Calendar.getInstance();
// 定义日期格式化样式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 初始日期
Date initDate = null;
// 判断参数类型
if (null == initTime) {
// 取系统当前时间
initDate = new Date();
} else if (initTime instanceof Date) {
initDate = (Date)initTime;
} else {
// 日期格式字符串转换成日期类Date
initDate = sdf.parse((String)initTime);
}
// 设置日历时间
calendar.setTime(initDate);
// 设置推算后的日历时间
calendar.add(Calendar.DATE, n);
// 获取推算后的日期
Date calculateDate = calendar.getTime();
// 进行格式化
calculateDay = sdf.format(calculateDate);
} catch(ParseException e) {
return calculateDay;
}
return calculateDay;
}
}
  根据初始日期推算期望(向前/向后)日期之方法二
/**
* 根据初始日期推算期望(向前/向后)日期
* @param initTime
* 初始日期
* @param n
* 向前/向后推算n天
* @return
* 推算后的日期
*/
public static String getCalculateDay(Object initTime,int n) throws ParseException{
// 返回推算后的日期
String calculateDay = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 初始日期
Date initDate = null; if (initTime instanceof Date)
  initDate = (Date)initTime;
else
  initDate = sdf.parse((String)initTime);
// 转换成距离1970年0时0分的毫秒数
Long initMilliSeconds = initDate.getTime();
// 一天代表的毫秒数
int oneDayTime = 24 * 60 * 60 * 1000;
initMilliSeconds += oneDayTime * n; // 推算出的日期
Date calculateDate = new Date(initMilliSeconds);
calculateDay = sdf.format(calculateDate);
return calculateDay;
}

  UpdateTime--2017年8月10日17:12:21

  获取系统当前时间

  方法一:

    调用上面的DateUtils.dateFormat(new Date(),"yyyy-MM-dd") 即可

  方法二:

public static Calendar calendar = Calendar.getInstance();
/**
* 获取当前年份
*
* @return
*/
public static int getCurYear() {
return calendar.get(Calendar.YEAR);
} /**
* 获取当前月份
*
* @return
*/
public static int getJCMMonth() {
return calendar.get(Calendar.MONTH) + 1;
} /**
* 获取当前天
*
* @return
*/
public static int getJCMDay() {
return calendar.get(Calendar.DATE);
} /**
* 获取当前月份(01,02,03......11,12)
*
* @return
*/
public static String getJCMMonthF() {
return formatDate(calendar.get(Calendar.MONTH) + 1);
} /**
* 获取当前天(01,02,03......29,30)
*
* @return
*/
public static String getJCMDayF() {
return formatDate(calendar.get(Calendar.DATE));
} /**
* 把月份和日期修改为两位数字
*
* @param date
* @return
*/
public static String formatDate(int date) {
String date2 = "0";
if (date <= 9) {
date2 += String.valueOf(date);
} else {
date2 = String.valueOf(date);
}
return date2;
}

  测试:

// 获取系统当前时间
// 方式一
// 1.这种方式返回的月和日如果没有值小于10,不会自动加0;
// 2.int转String,直接拼接字符串会自动将结果转换成String
System.out.println(getCurYear() + "-" + getJCMMonth() + "-" + getJCMDay());//2017-8-9
// 方式二
System.out.println(getCurYear() + "-" + getJCMMonthF() + "-" + getJCMDayF());//2017-08-09  
 

java 日期工具类DateUtils的更多相关文章

  1. Java日期工具类DateUtils详解(转)

    jar包 appache下的 common-lang3 一. 对指定的日期新增年.月.周.日.小时.分钟.秒.毫秒 public static Date addDays(Date date, int ...

  2. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  3. java日期工具类DateUtil-续一

    上篇文章中,我为大家分享了下DateUtil第一版源码,但就如同文章中所说,我发现了还存在不完善的地方,所以我又做了优化和扩展. 更新日志: 1.修正当字符串日期风格为MM-dd或yyyy-MM时,若 ...

  4. java日期工具类DateUtil-续二

    该版本是一次较大的升级,农历相比公历复杂太多(真佩服古人的智慧),虽然有规律,但涉及到的取舍.近似的感念太多,况且本身的概念就已经很多了,我在网上也是查阅了很多的资料,虽然找到一些计算的方法,但都有些 ...

  5. java日期工具类DateUtil

    一名优秀的程序员,不仅需要有着丰富解决问题的方案,还需要的便是代码的沉淀,这不仅有助于自己快速的开发程序,也有利于保证程序的健壮.那如何才能沉淀自己的”代码“呢?从自己编写util开始其实就是一个不错 ...

  6. 日期工具类 DateUtils(继承org.apache.commons.lang.time.DateUtils类)

    /** * */ package com.dsj.gdbd.utils.web; import org.apache.commons.lang3.time.DateFormatUtils; impor ...

  7. JAVA 日期工具类的总结

    一般,在项目中,我们会会经常使用到日期的各种方式的处理,在各个业务逻辑操作中,都需要相关的日期操作,因此,实现项目中的日期工具类的提出,还是十分重要的,下面,就项目中常用到的日期的相关操作方式,做了一 ...

  8. Java 日期工具类(日期,月份加减等)--转

    package util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.C ...

  9. java 日期工具类

    import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; imp ...

随机推荐

  1. 《学习R》

    <学习R> 基本信息 原书名:Learning R 原出版社: O'Reilly Media 作者: (美)Richard Cotton 译者: 刘军 丛书名: 图灵程序设计丛书 出版社: ...

  2. [转]php-mobile-detect

    转自:http://www.oschina.net/p/php-mobile-detect php-mobile-detect (Mobile_Detect) 是一个 PHP 类,用来通过 User- ...

  3. protobuf 更新消息和扩展,包

    一.更新一个消息类型 如果一个已有的消息格式已无法满足新的需求--如,要在消息中添加一个额外的字段--但是同时旧版本写的代码仍然可用.不用担心!更新消息而不破坏已有代码是非常简单的.在更新时只要记住以 ...

  4. python读取配置文件的方式

    python读取配置文件的方式 1.从config.ini中读取,后缀无所谓,文件名字也无所谓,不过config.ini是常用写法,所谓见名知意 config.ini内容: [global] ip = ...

  5. AsyncHttpClient的连接池使用逻辑

    AsyncHttpClient的连接池结构很简单, NettyConnectionsPool内部重要的几个变量如下 // 连接池, 通过 host 区分不同的池 private final Concu ...

  6. AD各种布线方法总结

    1.常规布线:不详细说了,是个人就知道怎么弄.需要说明的是在布线过程中,可按小键盘的*键或大键盘的数字2键添加一个过孔:按L键可以切换布线层:按数字3可设定最小线宽.典型线宽.最大线宽的值进行切换. ...

  7. LeetCode295-Find Median from Data Stream && 480. 滑动窗口中位数

    中位数是有序列表中间的数.如果列表长度是偶数,中位数则是中间两个数的平均值. 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个支持以下两种操 ...

  8. Arduino教程:MPU6050的数据获取、分析与处理

    Arduino教程:MPU6050的数据获取.分析与处理 转载 摘要 MPU6050是一种非常流行的空间运动传感器芯片,可以获取器件当前的三个加速度分量和三个旋转角速度.由于其体积小巧,功能强大,精度 ...

  9. 【Scala】Scala-None-null引发的血案

    Scala-None-null引发的血案 Overview - Spark 2.2.0 Documentation Spark Streaming - Spark 2.2.0 Documentatio ...

  10. go-ethereum

    如果要深入了解go-ethereum项目的实现与机制,看源代码是必不可少的.今天这篇博客就简单介绍一下如何在本地搭建项目的开发环境. GO语言环境搭建 以win8为例,访问地址https://gola ...