Java计算时间,可以像微信朋友圈那样显示发布的时间
来源:互联网 发布:java object 锁 编辑:程序博客网 时间:2024/05/23 16:59
/**
* 日期处理工具类
*
* @author whm
*
*/
public class DateUtils {
public static final String YMD = "yyyyMMdd";
public static final String YMD_YEAR = "yyyy";
public static final String YMD_BREAK = "yyyy-MM-dd";
public static final String YMDHMS = "yyyyMMddHHmmss";
public static final String YMDHMS_BREAK = "yyyy-MM-dd HH:mm:ss";
public static final String YMDHMS_BREAK_HALF = "yyyy-MM-dd HH:mm";
/**
* 计算时间差
*/
public static final int CAL_MINUTES = 1000 * 60;
public static final int CAL_HOURS = 1000 * 60 * 60;
public static final int CAL_DAYS = 1000 * 60 * 60 * 24;
/**
* 获取当前时间格式化后的值
*
* @param pattern
* @return
*/
public static String getNowDateText(String pattern){
SimpleDateFormat sdf = getSimpleDateFormat(pattern);
return sdf.format(new Date());
}
/**
* 获取日期格式化后的值
*
* @param date
* @param pattern
* @return
*/
public static String getDateText(Date date, String pattern){
SimpleDateFormat sdf = getSimpleDateFormat(pattern);
return sdf.format(date);
}
/**
* 字符串时间转换成Date格式
*
* @param date
* @param pattern
* @return
* @throws ParseException
*/
public static Date getDate(String date, String pattern) throws ParseException{
SimpleDateFormat sdf = getSimpleDateFormat(pattern);
return sdf.parse(date);
}
private static SimpleDateFormat getSimpleDateFormat(String pattern){
return new SimpleDateFormat(pattern);
}
/**
* 获取时间戳
* @param date
* @return
*/
public static Long getTime(Date date){
return date.getTime();
}
/**
* 计算时间差
* @param startDate
* @param endDate
* @param calType 计算类型,按分钟、小时、天数计算
* @return
*/
public static int calDiffs(Date startDate, Date endDate, int calType){
Long start = DateUtils.getTime(startDate);
Long end = DateUtils.getTime(endDate);
int diff = (int) ((end - start)/calType);
return diff;
}
/**
* 计算时间差值以某种约定形式显示
*
* @param startDate
* @param endDate
* @return
*/
public static String timeDiffText(Date startDate, Date endDate){
int calDiffs = DateUtils.calDiffs(startDate, endDate, DateUtils.CAL_MINUTES);
if(calDiffs == 0){
return "刚刚";
}
if(calDiffs < 60){
return calDiffs + "分钟前";
}
calDiffs = DateUtils.calDiffs(startDate, endDate, DateUtils.CAL_HOURS);
if(calDiffs < 24){
return calDiffs + "小时前";
}
if(calDiffs < 48){
return "昨天";
}
return DateUtils.getDateText(startDate, DateUtils.YMDHMS_BREAK_HALF);
}
/**
* 显示某种约定后的时间值,类似微信朋友圈发布说说显示的时间那种
*
* @param date
* @return
*/
public static String showTimeText(Date date){
return DateUtils.timeDiffText(date, new Date());
}
public static void main(String[] args) throws ParseException {
Date start = DateUtils.getDate("2017-07-05 10:54", DateUtils.YMDHMS_BREAK_HALF);
System.out.println(DateUtils.showTimeText(start));
}
}
* 日期处理工具类
*
* @author whm
*
*/
public class DateUtils {
public static final String YMD = "yyyyMMdd";
public static final String YMD_YEAR = "yyyy";
public static final String YMD_BREAK = "yyyy-MM-dd";
public static final String YMDHMS = "yyyyMMddHHmmss";
public static final String YMDHMS_BREAK = "yyyy-MM-dd HH:mm:ss";
public static final String YMDHMS_BREAK_HALF = "yyyy-MM-dd HH:mm";
/**
* 计算时间差
*/
public static final int CAL_MINUTES = 1000 * 60;
public static final int CAL_HOURS = 1000 * 60 * 60;
public static final int CAL_DAYS = 1000 * 60 * 60 * 24;
/**
* 获取当前时间格式化后的值
*
* @param pattern
* @return
*/
public static String getNowDateText(String pattern){
SimpleDateFormat sdf = getSimpleDateFormat(pattern);
return sdf.format(new Date());
}
/**
* 获取日期格式化后的值
*
* @param date
* @param pattern
* @return
*/
public static String getDateText(Date date, String pattern){
SimpleDateFormat sdf = getSimpleDateFormat(pattern);
return sdf.format(date);
}
/**
* 字符串时间转换成Date格式
*
* @param date
* @param pattern
* @return
* @throws ParseException
*/
public static Date getDate(String date, String pattern) throws ParseException{
SimpleDateFormat sdf = getSimpleDateFormat(pattern);
return sdf.parse(date);
}
private static SimpleDateFormat getSimpleDateFormat(String pattern){
return new SimpleDateFormat(pattern);
}
/**
* 获取时间戳
* @param date
* @return
*/
public static Long getTime(Date date){
return date.getTime();
}
/**
* 计算时间差
* @param startDate
* @param endDate
* @param calType 计算类型,按分钟、小时、天数计算
* @return
*/
public static int calDiffs(Date startDate, Date endDate, int calType){
Long start = DateUtils.getTime(startDate);
Long end = DateUtils.getTime(endDate);
int diff = (int) ((end - start)/calType);
return diff;
}
/**
* 计算时间差值以某种约定形式显示
*
* @param startDate
* @param endDate
* @return
*/
public static String timeDiffText(Date startDate, Date endDate){
int calDiffs = DateUtils.calDiffs(startDate, endDate, DateUtils.CAL_MINUTES);
if(calDiffs == 0){
return "刚刚";
}
if(calDiffs < 60){
return calDiffs + "分钟前";
}
calDiffs = DateUtils.calDiffs(startDate, endDate, DateUtils.CAL_HOURS);
if(calDiffs < 24){
return calDiffs + "小时前";
}
if(calDiffs < 48){
return "昨天";
}
return DateUtils.getDateText(startDate, DateUtils.YMDHMS_BREAK_HALF);
}
/**
* 显示某种约定后的时间值,类似微信朋友圈发布说说显示的时间那种
*
* @param date
* @return
*/
public static String showTimeText(Date date){
return DateUtils.timeDiffText(date, new Date());
}
public static void main(String[] args) throws ParseException {
Date start = DateUtils.getDate("2017-07-05 10:54", DateUtils.YMDHMS_BREAK_HALF);
System.out.println(DateUtils.showTimeText(start));
}
}
阅读全文
0 0
- Java计算时间,可以像微信朋友圈那样显示发布的时间
- 朋友圈动态发布时间计算
- 朋友圈动态发布时间计算
- 朋友圈动态发布时间计算
- Android记录19-朋友圈动态发布时间计算
- Android记录19-朋友圈动态发布时间计算
- 关于类似朋友圈的发布时间间隔计算问题(python)
- 仿微信朋友圈动态的时间显示
- 时间处理(仿朋友圈、微博发布时间)
- 详细计算大学生可以学习的时间
- 仿微信朋友圈日期显示 时间戳格式化
- Java 时间格式化,时间解析和时间计算的记录
- java里的计算时间
- JAVA日期时间的计算
- JAVA对时间的计算
- Java中时间间隔的计算(以前的时间与现在的时间间隔,类似于新浪微博显示发表时间的方式)
- Java中时间间隔的计算(以前的时间与现在的时间间隔,类似于新浪微博显示发表时间的方式)
- java 友好的显示时间
- 对Json与BaseBean的一些理解
- python安装第三方库的问题
- PHP echo/print
- Ubuntu 14.04安装JDK1.8.0_25与配置环境变量
- echarts 调整图表 位置 的方法
- Java计算时间,可以像微信朋友圈那样显示发布的时间
- android studio调试安装程序,安装失败,并且手机自动掉线
- Uva 579 Clock Hands
- qt XML文件中node的删除方法
- Dubbo接口延迟暴露(等spring初始化)的配置方法
- Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨
- type为number的input标签输入小数的方法
- JSON 、使用JSON实现数据交换 、jQuery对AJAX的支持
- xdebug 原理