Android分享之时间日期转换工具类DateTime
来源:互联网 发布:ig是什么社交软件 编辑:程序博客网 时间:2024/05/17 15:01
分享一个时间日期转换工具类DateTime
源码在最后面!!
注:时间日期表达格式(Android端基本都是这个格式)
还有一些不常见的属性,就不一一列举了。
一、生成对象DateTime的对象的三种方式
- 直接new,表示当前时间
DateTime dateTime=new DateTime()
- 传入一个毫秒值
DateTime dateTime=new DateTime(10000000);
- 解析日期时间,生成DateTime
DateTime dateTime = DateTime.parse("2016-10-12", "yyyy-mm-dd");
二、解析时间日期,生成字符串
- 生成默认格式字符串 结果为:2016-10-31 21:21:21
dateTime.toString();
- 生成特定格式的字符串 结果为:2016-10-31
dateTime.toString("yyyy-MM-dd");
三、小时运算(唯一的时间运算,有兴趣的朋友可以拓展)
//增加一小时 DateTime dateTime1 = dateTime.plusHour(1); //减少一小时 DateTime dateTime2 = dateTime.plusHour(-1);
四、时间判断
- 两个dateTime对比,true 表示dateTime1在dateTime2之后
dateTime1.after(dateTime2);
- dateTime跟毫秒值对比
dateTime1.after(1000000);
五、其它一些获取参数的方法
- Date getDate() 获取当前时间的Date对象
- long getMillis() 获取当前时间的毫秒值
六、实际开发中的运用
- 格式转换:2016-10-21 21:22:23 转换成 2016-10-21
String timeStr = DateTime.parse("2016-10-21 21:22:23", "yyyy-MM-dd HH:mm:ss").toString("yyyy-MM-dd");
- 判断是否为当天
String todayStr = new DateTime().toString("yyyy-MM-dd"); if (todayStr.equals(dateTime.toString("yyyy-MM-dd"))) { //true表示当天 }
特殊格式的时间JSON解析
{ "code": 0, "message": "成功", "data":{"nanos":0,"time":-27076233600000,"minutes":0,"seconds":0,"hours":0,"month":11,"timezoneOffset":-480,"year":-789,"day":5,"date":22} }
遇到这种格式的日期时间,是不是有一种拿键盘砸后台的冲动。。不用慌,福利来了。
使用Gson解析 Entity为:
public class Entity { private int code; private String message; private DateTime data; }
Gson解析教程传送门
介绍到此为止,基于最小内存原则,这个类写的非常简单,同时方便扩展。
package com.holly.common.help;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * @author Joey Huang(QQ:273179370) * @created 2016/9/2 */public class DateTime { private long time; private Date mCurDate; public DateTime() { this(System.currentTimeMillis()); } public DateTime(long currMillis) { time = currMillis; } public String toString(String pattern) { SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); if (mCurDate == null) { mCurDate = new Date(time); } else { mCurDate.setTime(time); } return dateFormat.format(mCurDate); } public String toString() { return toString("yyyy-MM-dd HH:mm:ss"); } public DateTime plusHour(int i) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(time); calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) + i); return new DateTime(calendar.getTimeInMillis()); } public static DateTime parse(String timeStr, String pattern) { SimpleDateFormat sdf = new SimpleDateFormat(pattern); try { Date date = sdf.parse(timeStr); return new DateTime(date.getTime()); } catch (ParseException e) { return new DateTime(); } } public Date getDate() { return new Date(time); } public long getMillis() { return time; } public boolean after(DateTime dateTime) { return time > dateTime.getMillis(); } public boolean after(long millis) { return this.time > millis; }}
4 0
- Android分享之时间日期转换工具类DateTime
- Android 日期时间等转换工具类
- PHP使用DateTime类做时间日期到字符串转换
- Android:时间工具类 -- 时间戳转换成日期,日期转换成时间戳
- Android:时间工具类 -- 时间戳转换成日期,日期转换成时间戳
- python 使用datetime进行时间日期转换
- java日期时间转换工具类
- Android工具类之时间日期格式化代码大全
- Android工具类之时间日期格式化代码大全
- 【C#】时间日期格式转换:long和DateTime相互转换
- 工具之时间/日期
- Android 时间转换工具类
- Android工具类(时间转换)
- android 时间转换工具类
- 站长工具之时间戳转换日期格式
- 分享一个关于Java日期时间的工具类
- 日期工具类分享
- .NET 日期与时间类System.DateTime
- lua function
- Python基础习题(一)
- 线性判别分析
- 莫比乌斯反演
- XUtils3.0快速开发框架
- Android分享之时间日期转换工具类DateTime
- 第12节--支持向量机(SVM)算法在人脸识别上的应用
- JQuery插件之-----Datatables(一)一个简单的例子
- HDU5950【矩阵快速幂】
- test
- 老友记引发的血案—英语学习
- 第九周 OJ-3
- 文章分享----面向对象与面向过程的区别
- 人生的意义