JAVA 常用时间工具类
不说了,直接看代码吧
package com.poly.rbl.utils;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 时间工具类
*
* @author gogym
* @version 2017年8月30日
* @see DateTimeUtil
* @since
*/
public class DateTimeUtil
{
/**
* 获取当前系统时间
*
* @return
* @author gogym
* @date 2016-4-28 上午10:07:54
* @comment
*/
public static String getCurrentTime()
{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
String time = df.format(new Date());// new Date()为获取当前系统时间
return time;
}
/**
* 获取当前系统时间
*
* @return
* @author gogym
* @date 2016-4-28 上午10:07:54
* @comment
*/
public static Long getCurrentLongTime()
{
Long time = new Date().getTime();// new Date()为获取当前系统时间
return time;
}
/**
* date类型转String类型
*
* @param date
* @return
* @author gogym
* @date 2016-4-28 上午10:10:25
* @comment
*/
public static String convertDateToString(Date date)
{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
return df.format(date);
}
/**
* long类型转String类型
*
* @param date
* @return
* @author gogym
* @date 2016-4-28 上午10:10:25
* @comment
*/
public static String convertLongToString(Long date)
{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
return df.format(new Date(date));
}
/**
* String类型转date类型
*
* @param date
* @return
* @author gogym
* @date 2016-4-28 上午10:10:25
* @comment
*/
public static Date convertStringToDate(String time)
{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
try
{
return df.parse(time);
}
catch (ParseException e)
{
e.printStackTrace();
}
return null;
}
/**
* 获得指定时间的前一天
*
* @param specifiedDay
* @return
* @throws Exception
*/
public static String getSpecifiedDayBefore(String specifiedDay)
{
Calendar c = Calendar.getInstance();
Date date = null;
try
{
date = new SimpleDateFormat("yy-MM-dd HH:mm:ss").parse(specifiedDay);
}
catch (ParseException e)
{
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day - 1);
String dayBefore = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(c.getTime());
return dayBefore;
}
/**
* 获得指定时间的后一天
*
* @param specifiedDay
* @return
*/
public static String getSpecifiedDayAfter(String specifiedDay)
{
Calendar c = Calendar.getInstance();
Date date = null;
try
{
date = new SimpleDateFormat("yy-MM-dd HH:mm:ss").parse(specifiedDay);
}
catch (ParseException e)
{
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day + 1);
String dayAfter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(c.getTime());
return dayAfter;
}
/**
* 获得指定时间的前一天
*
* @param specifiedDay
* @return
* @throws Exception
*/
public static String getSpecifiedDayBefore(Date specifiedDay)
{
Calendar c = Calendar.getInstance();
Date date = specifiedDay;
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day - 1);
String dayBefore = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(c.getTime());
return dayBefore;
}
/**
* 获得指定时间的后一天
*
* @param specifiedDay
* @return
*/
public static String getSpecifiedDayAfter(Date specifiedDay)
{
Calendar c = Calendar.getInstance();
Date date = specifiedDay;
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day + 1);
String dayAfter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(c.getTime());
return dayAfter;
}
/**
* 获得当天0点时间
*
* @author:gj
* @date: 2017/3/10
* @time: 12:29
**/
public static Long getTimesmorning()
{
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTimeInMillis();
}
/**
* 获取星期几
*
* @author:gj
* @date: 2017/3/10
* @time: 14:19
**/
public static String getWeekOfDate(Date dt)
{
String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
Calendar cal = Calendar.getInstance();
cal.setTime(dt);
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (w < 0) w = 0;
return weekDays[w];
}
/**
* 获取时间点,类似微信
*
* @author:gj
* @date: 2017/3/10
* @time: 14:49
**/
public static String getTimePoint(String time)
{
Long Tmp = Long.valueOf(time);
return getTimePoint(Tmp);
}
public static String getTimePoint(Long time)
{
// 现在时间
Long now = new Date().getTime();
DateFormat df;
int day = (60 * 60 * 24) * 1000;
String pointText = "1970-01-01";
// 时间点比当天零点早
if (time <= now && time != null)
{
Date date = new Date(time);
if (time < getTimesmorning())
{
if (time >= getTimesmorning() - day)
{// 比昨天零点晚
pointText = "昨天";
return pointText;
}
else
{// 比昨天零点早
if (time >= getTimesmorning() - 6 * day)
{// 比七天前的零点晚,显示星期几
return getWeekOfDate(date);
}
else
{// 显示具体日期
df = new SimpleDateFormat("yyyy-MM-dd");
pointText = df.format(date);
return pointText;
}
}
}
else
{// 无日期时间,当天内具体时间
df = new SimpleDateFormat("HH:mm");
pointText = df.format(date);
return pointText;
}
}
return pointText;
}
/**
* 获取时间间隔提示,类似微博
*
* @author:gj
* @date: 2017/6/12
* @time: 13:08
**/
public static String getInterval(Long t)
{
String interval = null;
// 用现在距离1970年的时间间隔new Date().getTime()减去以前的时间距离1970年的时间间隔d1.getTime()得出的就是以前的时间与现在时间的时间间隔
long time = new Date().getTime() - t;// 得出的时间间隔是毫秒
if (time / 1000 < 10 && time / 1000 >= 0)
{
// 如果时间间隔小于10秒则显示“刚刚”time/10得出的时间间隔的单位是秒
interval = "刚刚";
}
else if (time / 1000 < 60 && time / 1000 > 0)
{
// 如果时间间隔小于60秒则显示多少秒前
int se = (int)((time % 60000) / 1000);
interval = se + "秒前";
}
else if (time / 60000 < 60 && time / 60000 > 0)
{
// 如果时间间隔小于60分钟则显示多少分钟前
int m = (int)((time % 3600000) / 60000);// 得出的时间间隔的单位是分钟
interval = m + "分钟前";
}
else if (time / 3600000 < 24 && time / 3600000 >= 0)
{
// 如果时间间隔小于24小时则显示多少小时前
int h = (int)(time / 3600000);// 得出的时间间隔的单位是小时
interval = h + "小时前";
}
else if (time / 3600000 / 24 < 30 && time / 3600000 / 24 >= 0)
{
// 如果时间小于30天
int h = (int)(time / 3600000 / 24);
interval = h + "天前";
}
else
{
// 大于30天,则显示正常的时间,但是不显示秒
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
ParsePosition pos2 = new ParsePosition(0);
// Date d2 = (Date) sdf.parse(creattetime, pos2);
Date d2 = new Date(t);
interval = sdf.format(d2);
}
return interval;
}
public static String getInterval(String createtime)
{ // 传入的时间格式必须类似于2012-8-21 17:53:20这样的格式
String interval = null;
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ParsePosition pos = new ParsePosition(0);
Date d1 = (Date)sd.parse(createtime, pos);
return getInterval(d1.getTime());
}
}
还没有评论,来说两句吧...