java 时间转换
来源:互联网 发布:mac os 哪个版本号 编辑:程序博客网 时间:2024/06/05 19:20
现在好多应用都有 刚刚 一个小时前,两分钟前 这段时间比较闲,比较无聊 就写了一个 。没事看着玩吧
主要的思路 就是 100 转化成 一百零零 最后的 零零 不管有几个都会去掉,1001 就是 一千零零一 中间两个零以上的包含两个 都改成零。 按照常规的写 整理非常规的。其他的类似 最大应该是到万 没有写千万的 代码里有注释 可以看看 楼主自己就测试到万
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * * 1,刚刚 2,一小时前 3,两小时前 4,一天前 5,两天前 6,三天前 * * * * @author whaty * */public class TimeUtile {private static final long ONEDATE = 86400000; // 一天的时间差private static final long ONEHOUR = 3600000; // 一小时的时间差private static final long ONEMINUTE = 60000; // 一分钟的时间差/** * * * time类型 是 yyyy-MM-dd HH:mm:ss.s 不是的请转化成这个 * * @param time * @return */public static String putDate(String time) {String dateStr = null;try {SimpleDateFormat dd = new SimpleDateFormat("dd");SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.s");Date otheTime = yyyyMMdd.parse(time);Date nowTime = new Date();//Date date10 = yyyyMMdd.parse("2015-10-10 10:30:30.0");//Date date11 = yyyyMMdd.parse("2015-10-10 23:40:30.0");Long time10 = nowTime.getTime();Long time11 = otheTime.getTime();System.out.println("time=== " + time10 + " time11 " + time11 + " time10差值" + (time11 - time10));System.out.println("用了多久=== " + (time11 - time10) / ONEDATE);System.out.println("====" + dd.format(new Date(time11 - time10)));// dateStr = yyyyMMdd.format(new Date(time10));long timeDiff = time11 - time10;if (timeDiff >= ONEDATE) {String someDate = someDate(timeDiff);return someDate == null ? time : someDate;}if (timeDiff >= ONEHOUR) {return someHour(timeDiff);}if (timeDiff >= ONEMINUTE) {return someMinute(timeDiff);}} catch (ParseException e) {e.printStackTrace();}return dateStr;}private static String someMinute(long timeDiff) {int dateNum = (int) (timeDiff / ONEMINUTE);System.out.println("dateNum minute== " + dateNum);String dateStr;if (dateNum < 10) {dateStr = "刚刚";} else if (dateNum < 30) {dateStr = "半小时前";} else {dateStr = "一个小时以内";}return dateStr;}/** * * 判断相差小时 * * @param timeDiff * @return */private static String someHour(long timeDiff) {int dateNum = (int) (timeDiff / ONEHOUR);System.out.println("dateNum someHour== " + dateNum);String dateStr;if (dateNum < 12) {dateStr = getDate(dateNum, "小时前");} else {dateStr = "一天以内";}return dateStr;}/** * * 用于判断相差月数 * * @param timeDiff * @return */private static String someDate(long timeDiff) {int dateNum = (int) (timeDiff / ONEDATE);System.out.println("dateNum someDate== " + dateNum);String dateStr;if (dateNum <= 15) {dateStr = getDate(dateNum, "天前内");} else if (dateNum <= 30 && dateNum > 15) {dateStr = "一个月内";} else if (dateNum < 60) {dateStr = "两个月内";} else {dateStr = "很久很久以前";}return dateStr;}/** * 组装提示 * * @param index * @param str * @return */private static String getDate(int index, String str) {return String.format("%s%s", enNum2CnNum(String.valueOf(index)), str);}/** * * 数字转化成中国的一二三 * * * @param num * @return */public static String enNum2CnNum(String num) {String[] CnNum = new String[] { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" };String[] Cn10Num = new String[] { "十", "百", "千" };String CnStr = "";try {char[] strArray = num.toCharArray();int length = strArray.length;for (int i = 0; i < strArray.length; i++) {if (length > 1 && ((char2Int(strArray[i])) != 0)) {CnStr += (CnNum[char2Int(strArray[i])] + Cn10Num[length - 2]);} else {CnStr += CnNum[char2Int(strArray[i])];}length--;}// 处理多个零字段CnStr = CnStr.replaceAll("零零*", "零");// 处理最后一个是零if (CnStr.lastIndexOf("零") + 1 == CnStr.length()) {CnStr = CnStr.replaceAll("零$", "");}// 处理十几if (CnStr.contains("十") && (CnStr.length() == 3 || CnStr.length() == 2)) {CnStr = CnStr.replaceAll("^一", "");}} catch (Exception e) {e.printStackTrace();}return CnStr;} /** * 获取单个的String * * @param cha * @return */private static Integer char2Int(char cha) {return Integer.valueOf(cha + "");}public static void main(String[] args) {System.out.println("==== " + putDate("2015-10-30 10:20:30.0"));}}
0 0
- Java时间转换问题
- Java时间格式转换
- java时间类型转换
- Java 中时间转换
- java时间转换函数
- Java中的时间转换
- JAVA 时间格式转换
- JAVA时间格式转换
- java时间转换
- java时间转换
- java 时间格式转换
- java 时间转换
- java时间类型转换
- Java 日期时间转换
- Java时间格式转换
- java oracle 时间转换
- java ---- php时间转换
- java时间类型转换
- Android异步加载数据或图片问题
- matlab conv2、filter2、imfilter的区别
- 建立多人协作git仓库/git 仓库权限控制(SSH)
- Android生成签名包以及空白包打签名包
- mac机下切换不同版本的jdk
- java 时间转换
- MongoDB的聚合功能使用
- Redis中PipeLine使用(二)---批量get与批量set
- Java 理论与实践: 非阻塞算法简介--转载
- 常用的机器学习&数据挖掘翻译(转)
- Codevs_P2981 查字典1(BIT)
- 设置video.js多视频连续播放
- yycg之用户身份校验(二)
- Elasticsearch-PHP 索引操作