
Android 时间戳与时间互转换
发布日期:2021-05-07 18:54:04
浏览次数:18
分类:精选文章
本文共 4303 字,大约阅读时间需要 14 分钟。
package com.anguomob.total.utils;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Locale; public class DateUtil { private DateUtil(){} /** * 枚举日期格式 */ public enum DatePattern{ /** * 格式:"yyyy-MM-dd HH:mm:ss" */ ALL_TIME{public String getValue(){return "yyyy-MM-dd HH:mm:ss";}}, /** * 格式:"yyyy-MM" */ ONLY_MONTH{public String getValue(){return "yyyy-MM";}}, /** * 格式:"yyyy-MM-dd" */ ONLY_DAY{public String getValue(){return "yyyy-MM-dd";}}, /** * 格式:"yyyy-MM-dd HH" */ ONLY_HOUR{public String getValue(){return "yyyy-MM-dd HH";}}, /** * 格式:"yyyy-MM-dd HH:mm" */ ONLY_MINUTE{public String getValue(){return "yyyy-MM-dd HH:mm";}}, /** * 格式:"MM-dd" */ ONLY_MONTH_DAY{public String getValue(){return "MM-dd";}}, /** * 格式:"MM-dd HH:mm" */ ONLY_MONTH_SEC{public String getValue(){return "MM-dd HH:mm";}}, /** * 格式:"HH:mm:ss" */ ONLY_TIME{public String getValue(){return "HH:mm:ss";}}, /** * 格式:"HH:mm" */ ONLY_HOUR_MINUTE{public String getValue(){return "HH:mm";}}; public abstract String getValue(); } /** * 获取当前时间 * @return 返回当前时间,格式2017-05-04 10:54:21 */ public static String stamptoStringDate(String dateString,DatePattern pattern){ String res; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern.getValue(),Locale.CHINA); //如果它本来就是long类型的,则不用写这一步 long lt = Long.parseLong(dateString); Date date = new Date(lt); res = simpleDateFormat.format(date); return res; } /* * 将时间转换为时间戳 */ public static String dateToStamp(String dateString,DatePattern pattern) throws ParseException{ String res; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern.getValue(),Locale.CHINA); Date date = simpleDateFormat.parse(dateString); long ts = date.getTime(); res = String.valueOf(ts); return res; } /** * 将一个日期字符串转换成Data对象 * @param dateString 日期字符串 * @param pattern 转换格式 * @return 返回转换后的日期对象 */ public static Date stringToDate(String dateString, DatePattern pattern){ Date date = null; SimpleDateFormat sdf = new SimpleDateFormat(pattern.getValue(),Locale.CHINA); try { date = sdf.parse(dateString); } catch (ParseException e) { e.printStackTrace(); } return date; } /** * 将date转换成字符串 * @param date 日期 * @param pattern 日期的目标格式 * @return */ public static String dateToString(Date date, DatePattern pattern){ String string = ""; SimpleDateFormat sdf = new SimpleDateFormat(pattern.getValue(), Locale.CHINA); string = sdf.format(date); return string; } /** * 获取指定日期周几 * @param date 指定日期 * @return * 返回值为: "周日", "周一", "周二", "周三", "周四", "周五", "周六" */ public static String getWeekOfDate(Date date){ String[] weekDays = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" }; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int week = calendar.get(Calendar.DAY_OF_WEEK) - 1; if (week < 0) week = 0; return weekDays[week]; } /** * 获取指定日期对应周几的序列 * @param date 指定日期 * @return 周一:1 周二:2 周三:3 周四:4 周五:5 周六:6 周日:7 */ public static int getIndexWeekOfDate(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int index = calendar.get(Calendar.DAY_OF_WEEK); if(index == 1){ return 7; }else{ return --index; } } /** * 返回当前月份 * @return */ public static int getNowMonth(){ Calendar calendar = Calendar.getInstance(); return calendar.get(Calendar.MONTH) + 1; } /** * 获取当前月号 * @return */ public static int getNowDay(){ Calendar calendar = Calendar.getInstance(); return calendar.get(Calendar.DATE); } /** * 获取当前年份 * @return */ public static int getNowYear(){ Calendar calendar = Calendar.getInstance(); return calendar.get(Calendar.YEAR); } /** * 获取本月份的天数 * @return */ public static int getNowDaysOfMonth(){ Calendar calendar = Calendar.getInstance(); return daysOfMonth(calendar.get(Calendar.YEAR),calendar.get(Calendar.DATE) + 1); } /** * 获取指定月份的天数 * @param year 年份 * @param month 月份 * @return 对应天数 */ public static int daysOfMonth(int year,int month){ switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if((year % 4 ==0 && year % 100 == 0) || year % 400 != 0){ return 29; }else{ return 28; } default: return -1; } }}
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月07日 14时29分08秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MySQL 高级 - 存储过程 - 函数
2019-03-07
Explore Optimization
2019-03-07
MATLAB知识点1
2019-03-07
交换机基础知识 - 从零开始学习
2019-03-07
Kali Linux 内网渗透教程 - ARP欺骗攻击 | 超详细
2019-03-07
Unable to find vcvarsall.bat build_ext
2019-03-07
搞懂线程和进程的关系及区别
2019-03-07
java如何实现任意两个值交换 数组为例(值传递和地址传递)
2019-03-07
2020Java程序设计基础(华东交通大学)章节测试免费满分答案
2019-03-07
嵌入式流水线以及数据存储的大小端
2019-03-07
C/C++初学之创建项目
2019-03-07
ENSP模拟器
2019-03-07
windows下命令行模式中cd命令无效的解决办法
2019-03-07
Firing POJ - 2987(最大权闭合图)
2019-03-07
VS中Qt项目汉字和UTF-8编码转换
2019-03-07
发布订阅模式与观察者模式
2019-03-07
java.lang.NoSuchMethodError 错误的原因及解决方法
2019-03-07
torch.meshgrid()函数解析
2019-03-07