java时间转换工具类

这个持续更新吧,只是项目暂时用到的


package bingosoft.epm.helper.utils;

import java.sql.Timestamp;

import java.text.DateFormat;

import java.text.ParseException;

import java.text.ParsePosition;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class DateUtils {

public static long ONE_DAY =24 *60 *60 *1000L;

public static long ONE_HOUR =60 *60 *1000L;

public static long ONE_MINUTE =60 *1000L;

private static final StringDATE_PATTERNS[] = {"yyyy-MM-dd HH:mm:ss.SSS",

"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",

"yyyyMMddHHmmss","yyyyMMddHHmm","yyyyMMdd","HH:mm:ss","HH:mm","yyyyMMddHHmmssSSS"};

public static final int DATE_NORMAL =0;

public static final int DATE_COMPACT =7;

public static Date toDate(Object value) {

Date date =null;

if (value !=null) {

parse:

if (valueinstanceof Timestamp) {

date =new Date(((Timestamp) value).getTime());

}else if (valueinstanceof Date) {

date = (Date) value;

}else if (valueinstanceof Number) {

date =new Date(((Number) value).longValue());

}else {

String source = String.valueOf(value);

SimpleDateFormat parser =new SimpleDateFormat();

parser.setLenient(true);

ParsePosition pos =new ParsePosition(0);

for (String pattern :DATE_PATTERNS) {

parser.applyPattern(pattern);

pos.setIndex(0);

date = parser.parse(source, pos);

if (date !=null && pos.getIndex() == source.length()) {

break parse;

}

}

date =null;

}

}

return date;

}

public static String toString(Date date) {

return toString(date,DATE_NORMAL);

}

public static String toString(Date date,int pattern) {

if (date ==null) {

return null;

}

if (pattern <0 || pattern >=DATE_PATTERNS.length) {

pattern =DATE_NORMAL;

}

SimpleDateFormat parser =new SimpleDateFormat(DATE_PATTERNS[pattern]);

return parser.format(date);

}

public static Date getDate(int delay) {

return getDate(null, delay);

}

public static Date getDate(Date startTime,int delay) {

if (startTime ==null) {

startTime =new Date();

}

if (delay >0) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(startTime);

calendar.add(Calendar.MILLISECOND, delay);

startTime = calendar.getTime();

}

return startTime;

}

/**

    * 时间格式化 返回类型 :2015年6月3号 星期几 上午 10.00-16:00

    * 用于开会时间格式填写

    *

    * @return

    */

    public static String dateFormmat(Date start, Date endTime) {

DateFormat format1 =new SimpleDateFormat("yyyy年MM月dd日");

//开始时间

        String stringTime = format1.format(start);

//结束时间

        String end = format1.format(endTime);

String temptimes =null;

if (stringTime.equals(end)) {

DateFormat format =new SimpleDateFormat("yyyy年MM月dd日 EEE aaa hh:mm");

stringTime = format.format(start);

DateFormat format2 =new SimpleDateFormat("hh:mm");

String endTimes = format2.format(endTime);

temptimes = stringTime +"-" + endTimes;

}else {

DateFormat format =new SimpleDateFormat("yyyy年MM月dd日 EEE aaa hh:mm");

stringTime = format.format(start);

DateFormat format2 =new SimpleDateFormat(" yyyy年MM月dd日 EEE hh:mm");

String endTimes = format2.format(endTime);

temptimes = stringTime +"-" + endTimes;

}

return temptimes;

}

/**

    * 根据秒数获取时间串

    *

    * @param time (2018-10-1)

    * @return (2018-10-1 00:00:00)

*/

    public static String getTimeStrBySecond(Date time, String end) {

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

String times = simpleDateFormat.format(time);

if (end !=null) {

times +=" 23:59:59";

}else {

times +=" 00:00:00";

}

return times;

}

/**

    * 格式化时间

    *

    * @param time1

    * @param time2

    * @return 06:20-08:30

*/

    public static String getHhss(Date time1, Date time2) {

DateFormat format1 =new SimpleDateFormat("HH:mm");

//开始时间格式化

        String stringTime = format1.format(time1);

//结束时间格式化

        String endTimes = format1.format(time2);

String temptimes = stringTime +"-" + endTimes;

return temptimes;

}

/**

    * 获取时间相差的天数

    *

    * @param beginDate

    * @param endDate

    * @return 相差的天数

    */

    public static long getDaySub(Date beginDate, Date endDate) {

long day =0;

try {

if (endDate ==null) {

return day;

}

day = (endDate.getTime() - beginDate.getTime()) / (24 *60 *60 *1000);

//System.out.println("相隔的天数="+day);

        }catch (Exception e) {

e.printStackTrace();

}

return day;

}

/**

    * 日期转星期

    *

    * @param datetime

    * @return

    * @throws java.text.ParseException

*/

    public static String dateToWeek(String datetime)throws java.text.ParseException {

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

String[] weekDays = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

Calendar cal = Calendar.getInstance();// 获得一个日历

        Date datet =null;

Date now =new Date();

String nowTime = ff.format(now);

try {

datet = ff.parse(datetime);

cal.setTime(datet);

}catch (ParseException e) {

e.printStackTrace();

}

int w = cal.get(Calendar.DAY_OF_WEEK) -1;// 指示一个星期中的某天。

        if(datetime.equals(nowTime)){

weekDays[w]="今日";

}

if (w <0) {

w =0;

}

return weekDays[w];

}

/**

    * 指定日期加一天

    *

    * @param time

    * @return

    */

    public static Date getNextDay(Date time) {

return new Date(time.getTime() +24 *3600 *1000);

}

/**

    * 相隔天数,后面-前面

    * @param start

    * @param end

    * @return

    */

    public static int getDays(Date start, Date end) {

return (int) ((end.getTime() - start.getTime()) /ONE_DAY);

}

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容