Java封装的与当前时间比较,得到多少年,多少月,多少天前,多少小时前,多小分钟前
public class CalendarCal {
/**
* 与当前时间比较,得到多少年,多少月,多少天前,多少小时前,多小分钟前
*
* @param calendar
* 与当前时间比较的日期值
* @return 格式化之后的字符串
*/
public String getDateCompareNow(Calendar calendar) {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR) - calendar.get(Calendar.YEAR);
String strdate = null;
if (year > 0) {
strdate = year + "年前";
} else if (year == 0) {
int month = cal.get(Calendar.MONTH) - calendar.get(Calendar.MONTH);
if (month > 0) {
strdate = month + "月前";
} else if (month == 0) {
int day = cal.get(Calendar.DAY_OF_MONTH) - calendar.get(Calendar.DAY_OF_MONTH);
if (day > 0) {
strdate = day + "天前";
} else if (day == 0) {
int hour = cal.get(Calendar.HOUR_OF_DAY) - calendar.get(Calendar.HOUR_OF_DAY);
if (hour > 0) {
strdate = hour + "小时前";
} else if (hour == 0) {
int minute = cal.get(Calendar.HOUR_OF_DAY) - calendar.get(Calendar.HOUR_OF_DAY);
if (minute > 0) {
strdate = minute + "分钟前";
} else if (minute == 0) {
strdate = "刚刚";
}
}
// SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); //
// 格式化对象
// strdate = sdf.format(calendar.getTime()); // 输出格式化的日期
// strdate = DateUtil.dateToString(date,"HH:mm");
}
}
} else {
return "-1"; // 返回了一个负数
}
return strdate;
}
/**
* 测试代码
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse("2013-10-02 15:53:10");
Calendar calendar = Calendar.getInstance(); // 日历对象
calendar.setTime(date); // 设置当前日期
CalendarCal t = new CalendarCal();
String strdate = t.getDateCompareNow(calendar);
System.out.println(strdate);
}
}
Java封装的与当前时间比较,得到多少年,多少月,多少天前,多少小时前,多小分钟前的更多相关文章
- 时间戳显示为多少分钟前,多少天前的JS处理,JS时间格式化,时间戳的转换
var dateDiff = function (timestamp) { // 补全为13位 var arrTimestamp = (timestamp + '').split(''); for ( ...
- java Joda-Time 对日期、时间操作
任何企业应用程序都需要处理时间问题.应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径.使用 JDK 完成这项任务将非常痛苦和繁琐.现在来看看 Joda Time,一 ...
- 计算机程序的思维逻辑 (95) - Java 8的日期和时间API
本节继续探讨Java 8的新特性,主要是介绍Java 8对日期和时间API的增强,关于日期和时间,我们在之前已经介绍过两节了,32节介绍了Java 1.8以前的日期和时间API,主要的类是Date和 ...
- Java编程的逻辑 (95) - Java 8的日期和时间API
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
- Java中的日期和时间
Java中的日期和时间 Java在java.util包中提供了Date类,这个类封装了当前的日期和时间. Date类支持两种构造函数.第一个构造函数初始化对象的当前日期和时间. Date() 下面的构 ...
- # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结
095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 04 static关键字(续)
094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 03 static关键字(下)
093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 092 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 02 static关键字(中)
092 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
随机推荐
- SQL server 连接查询
1.join on 左右拼接查询 2.union 上下拼接 注意:所拼接的列的数据类型要一致
- 显示 SQLite 日志
通过在 Logcat 查看 SQL 执行语句可以帮助你调试 SQLite 问题, 使用 ADB SHELL 执行如下命令即可在 Logcat 输出 SQL 执行日志: adb shell setpro ...
- Dynamics CRM 2011编程系列(60):JS编程之CRUD辅助类(JQuery版)
今天给大家分享一个JQuery版的REST辅助类,在一年前我分享过一个只能在IE环境下运行的REST辅助类:<JS编程之实体CRUD辅助类 >.为什么要推出JQuery版的CRUD辅助类呢 ...
- dpkg error
在ubuntu乱搞,突然出现错误 dpkg: error: cannot read info directory: No such file or directory E: Sub-process / ...
- OA系统配置文件
第一章 web.xml配置文件解读 1. web.xml文件解读 lemon OA系统的核心配置文件都放在spring目录下的具有applicationContext的前缀文件.Classpath后有 ...
- 【转】如图,win7登陆界面,键盘失灵,没办法登陆。求解!如何在这个界面打开个鼠标可以点的软键盘
原文网址:http://zhidao.baidu.com/link?url=URPzHJXt9_yhtE-2A89apKsn5Y1B9O2NR_mktkaHSOPbUWb7TKSIYJKj_-lYPn ...
- 前端程序员:月薪 5K 到 5 万,我干了啥
高贵的前端程序猿们: 如何在前端开发这种高精尖的技术领域找到心仪的工作?实现在咖啡馆喝喝咖啡敲敲代码就能升职加薪.买房买车.迎娶白富美走上人生巅峰的职业梦想?这篇<进化论:从 0 到 100,前 ...
- unity3d ppsspp模拟器中的post processing shader在unity中使用
这个位置可以看到ppsspp的特殊处理文件位置来看看这些特效 用来测试的未加特效图片 ppsspp: 传说系列一生爱---英杰传说 最后的战士 aacolor 是关于饱和度,亮度,对比度,色调的调节, ...
- awk替换第几行第几列的值
代码如下: awk '{if(2==NR){gsub(/.*/, 300, $5)}print}' list.txt 将文件list.txt的第2行第5列的值替换为300
- 向MyEclipse中导入项目要注意的问题
如何导入 修改项目名称(路径) 修改类库 如何导入: 右键Package Explorer -> Import 如果是把别人的项目拷贝到自己的工程中,而且又改了项目名称,那么发布之前一定要改一个 ...