【Java】DateUtil(2)

import java.sql.Timestamp;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

import org.apache.commons.lang3.time.DateFormatUtils;

/**

 * 日期工具类, 继承org.apache.commons.lang.time.DateUtils类

 * @author

 * @version 2015-10-12

 */

public class DateUtils extends org.apache.commons.lang3.time.DateUtils {

    

    private static String[] parsePatterns = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm",

        "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm" };

    /**

     * 得到当前日期字符串 格式(yyyy-MM-dd)

     */

    public static String getDate() {

        return getDate("yyyy-MM-dd");

    }

    

    /**

     * 得到当前日期字符串 格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"

     */

    public static String getDate(String pattern) {

        return DateFormatUtils.format(new Date(), pattern);

    }

    

    /**

     * 得到日期字符串 默认格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"

     */

    public static String formatDate(Date date, Object... pattern) {

        String formatDate = null;

        if (pattern != null && pattern.length > 0) {

            formatDate = DateFormatUtils.format(date, pattern[0].toString());

        } else {

            formatDate = DateFormatUtils.format(date, "yyyy-MM-dd");

        }

        return formatDate;

    }

    

    /**

     * 得到日期时间字符串,转换格式(yyyy-MM-dd HH:mm:ss)

     */

    public static String formatDateTime(Date date) {

        return formatDate(date, "yyyy-MM-dd HH:mm:ss");

    }

    /**

     * 得到当前时间字符串 格式(HH:mm:ss)

     */

    public static String getTime() {

        return formatDate(new Date(), "HH:mm:ss");

    }

    /**

     * 得到当前日期和时间字符串 格式(yyyy-MM-dd HH:mm:ss)

     */

    public static String getDateTime() {

        return formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");

    }

    /**

     * 得到当前年份字符串 格式(yyyy)

     */

    public static String getYear() {

        return formatDate(new Date(), "yyyy");

    }

    /**

     * 得到当前月份字符串 格式(MM)

     */

    public static String getMonth() {

        return formatDate(new Date(), "MM");

    }

    /**

     * 得到当天字符串 格式(dd)

     */

    public static String getDay() {

        return formatDate(new Date(), "dd");

    }

    /**

     * 得到当前星期字符串 格式(E)星期几

     */

    public static String getWeek() {

        return formatDate(new Date(), "E");

    }

    

    /**

     * 日期型字符串转化为日期 格式

     * { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm",

     *   "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm" }

     */

    public static Date parseDate(Object str) {

        if (str == null){

            return null;

        }

        try {

            return parseDate(str.toString(), parsePatterns);

        } catch (ParseException e) {

            return null;

        }

    }

    /**

     * 获取过去的天数

     * @param date

     * @return

     */

    public static long pastDays(Date date) {

        long t = new Date().getTime()-date.getTime();

        return t/(24*60*60*1000);

    }

    

    

    public static Date getDateStart(Date date) {

        if(date==null) {

            return null;

        }

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        try {

            date= sdf.parse(formatDate(date, "yyyy-MM-dd")+" 00:00:00");

        } catch (ParseException e) {

            e.printStackTrace();

        }

        return date;

    }

    

    public static Date getDateEnd(Date date) {

        if(date==null) {

            return null;

        }

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        try {

            date= sdf.parse(formatDate(date, "yyyy-MM-dd") +" 23:59:59");

        } catch (ParseException e) {

            e.printStackTrace();

        }

        return date;

    }

    

    /**

     * 判断字符串是否是日期

     * @param timeString

     * @return

     */

    public static boolean isDate(String timeString){

        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");

        format.setLenient(false);

        try{

            format.parse(timeString);

        }catch(Exception e){

            return false;

        }

        return true;

    }

    

    /**

     * 格式化时间

     * @param timestamp

     * @return

     */

    public static String dateFormat(Date timestamp){

        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        return format.format(timestamp);

    }

    

    /**

     * 获取系统时间Timestamp

     * @return

     */

    public static Timestamp getSysTimestamp(){

        return new Timestamp(new Date().getTime());

    }

    

    /**

     * 获取系统时间Date

     * @return

     */

    public static Date getSysDate(){

        return new Date();

    }

    

    /**

     * 生成时间随机数

     * @return

     */

    public static String getDateRandom(){

        String s=new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());

        return s;

    }

    

    /**

     * @param args

     * @throws ParseException

     */

    public static void main(String[] args) throws ParseException {

//      System.out.println(formatDate(parseDate("2010/3/6")));

//      System.out.println(getDate("yyyy年MM月dd日 E"));

//      long time = new Date().getTime()-parseDate("2012-11-19").getTime();

//      System.out.println(time/(24*60*60*1000));

    }

}

时间: 2024-10-12 02:35:12

【Java】DateUtil(2)的相关文章

【Java】DateUtil(1)

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 日期工具类 默认使用 "yyyy-MM-dd HH:mm:ss" 格式化日期 * */ public final class DateUtils { /** * 英文简写(默认)如:2010-12-01 */ public static St

【java】简介(一)

应用:web后端开发.android-app开发.大数据应用开发 学习:java会过时,但程序设计的思想不会过时 特点:1.面向对象,跨平台,语法比c++简单 2.以字节码的形式运行在虚拟机上 3.自带功能齐全的类库 优点:1.语法相对简单2.有高度优化的虚拟机,一次编写,到处运行,跨平台 缺点:1.不能直接操作硬件(不适合底层操作系统的开发)2.GUI效果不佳 课程体系:JavaSE(standard editon)标准  JavaEE(enterprise editon)企业  JavaME

【Java】 入门 — —(六)

1.文档注释 A.JDK 包含一个很有用的工具,叫做 javadoc,它可以由源文件生成一个HTML 文档. B.文档提取的是以 /** 开头,到 */ 结束. C.javadoc 实用程序(utility)从下面几个特性中抽取信息: · 包 · 公有类与接口 · 公有的和受保护的构造器及方法 · 公有的和受保护的域 应该在上面几部分,编写注释 D.标记是由 @开始. E.标记 之后紧跟自由格式文本(free-form text),自由格式文本的第一句应该是一个概要性的句子: javadoc 实

【Java面向对象基础(三)】面向对象思想

[喵"的Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinking in Java中提到“Everything is an object”,即万物皆对象.这里的“对象”指的是任何实体或者任何可以当作实体看待的“虚幻的事物”.比如现实中的人(男人.女人.老人.小孩而...).动物(大象.狮子.猴子...).桌子.凳子.汽车.ATM机等等,也可以使看不见摸不着的空气(氧气.二氧化碳.氮气

【Java面向对象基础(一)】数据类型与运算符

[喵"的Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符 1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数据类型 字节数 二进制位数 最小值 最大值 默认值 byte 1 8-bit -2^7 +2^7 - 1 0 short 2 16-bit -2^15 +2^15 - 1 0 int 4 32-bit -2^31 +2^31 - 1 0 long 8 64-bit -2^63 +2^63 - 1 0

【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder

[喵"的Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder 1.String String是Java中的一个final类,主要用于字符串的处理. 1.1 不可变性 String内的字符串是不可变的,每一次修改都会重新生成一个新的String对象实例. 例: 1 // 在堆中会创建一个"Hello"字符串实例,把地址赋给对象a 2 String a = new String("Hello&

【分享】Linux(Ubuntu)下如何自己编译JDK

最近在看<深入理解 Java 虚拟机>这本书.里面提到了如何手动编译JDK,于是就试了试. 在编译的过程中,遇到了一些问题.上网一搜,发现了一篇很好的文章,跟大家分享一下:ubuntu 13.04环境编译OpenJDK7 虽然文章里说的编译环境是 13.04 ,但笔者在 14.04 的环境下,参考着文章也能成功编译. [分享]Linux(Ubuntu)下如何自己编译JDK

【2014】字符串(3)

题目描述(50分): 通过键盘输入100以内正整数的加.减运算式,请编写一个程序输出运算结果字符串. 输入字符串的格式为:"操作数1 运算符 操作数2","操作数"与"运算符"之间以一个空格隔开. 补充说明: 1.操作数为正整数,不需要考虑计算结果溢出的情况. 2.若输入算式格式错误,输出结果为"0". 要求实现函数: void arithmetic(const char *pInputStr, long lInputLen,

【Spring】的【Bean】管理(注解)【四个相同功能的注解】

[Spring]的[Bean]管理(注解)[四个相同功能的注解] 注解:代码里面特殊的标记,使用注解也可以完成一些相关的功能. 注解写法:@注解名称(属性名称=属性值) 注解使用在类.方法.属性上面 (注解可以替代配置文件,并非完全替代): 1.创建类,创建方法 1 public class User { 2 public void add(){ 3 System.out.println("add-----------"); 4 } 5 } 2.创建spring配置文件,引入约束 1