代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
Java中对日期的操作(获取、比较、排序、间隔)
作者:
/ 发布于
2017/10/23
/
728
获取网络时间 private void getNetTime() { TimeZone.setDefault(TimeZone.getTimeZone("GMT+8")); // 时区设置 try { URL url = new URL("http://www.baidu.com");//取得资源对象 URLConnection uc = url.openConnection();//生成连接对象 uc.connect(); //发出连接 long ld = uc.getDate(); //取得网站日期时间(时间戳) System.currentTimeMillis() Date date=new Date(ld); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); String currTime = formatter.format(date); System.out.print("currTime=" + currTime); } catch (IOException e) { e.printStackTrace(); } } 时间的比较 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class TestTime { public static void main(String[] args) { // TODO Auto-generated method stub String firstTime = "2015-01-07 08:52"; String secondTime = "2015-01-07 11:53"; CompareDateTime(firstTime, secondTime); String thirdTime = "2015-01-07 08:52"; String fourthTime = "2015-01-07 12:53"; CompareDateTime(thirdTime, fourthTime); String fifthTime = "2015-01-07 08:52"; String sixthTime = "2015-01-07 13:53"; CompareDateTime(fifthTime, sixthTime); String date1 = "2014-12-03"; String date2 = "2015-01-07"; System.out.println("天数=="+daysBetween(date1, date2)); System.out.println("后一天=="+getSpecifiedDayAfter(date1)); } public static boolean CompareDateTime(String time1, String time2) { boolean isFirstBig = false; DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); try { Date date1 = dateFormat.parse(time1); Date date2 = dateFormat.parse(time2); System.out.println("date1==" +date1.getTime()); System.out.println("date2==" +date2.getTime()); // Method 1 if (date1.getTime() > date2.getTime()) { System.out.println("M1--date1在date2后"); isFirstBig = true; } else if (date1.getTime() < date2.getTime()) { System.out.println("M1--date1在date2前"); isFirstBig = false; } // Method 2 if (date1.compareTo(date2) == 1) { System.out.println("M2--date1在date2后"); isFirstBig = true; } else if (date1.getTime() < date2.getTime()) { System.out.println("M2--date1在date2前"); isFirstBig = false; } // Method 3 Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); cal1.setTime(date1); cal2.setTime(date2); if (cal1.after(cal2)) { System.out.println("M3--date1在date2后"); } else { System.out.println("M3--date1在date2前"); } } catch (Exception exception) { exception.printStackTrace(); } return isFirstBig; } /** * 计算两天之间的天数 * @param startStr * @param endStr * @return */ public static int daysBetween(String startStr, String endStr) { int daysBetween = 0; try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = sdf.parse(startStr); Calendar startDate = Calendar.getInstance(); startDate.setTime(date1); Date date2 = sdf.parse(endStr); Calendar endDate = Calendar.getInstance(); endDate.setTime(date2); Calendar date = (Calendar) startDate.clone(); while (date.before(endDate)) { date.add(Calendar.DAY_OF_MONTH, 1); daysBetween++; } } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return daysBetween; } /** * 获得指定日期的后一天 * * @param specifiedDay * @return */ public static String getSpecifiedDayAfter(String specifiedDay) { Calendar c = Calendar.getInstance(); Date date = null; try { date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay); } catch (ParseException e) { e.printStackTrace(); } c.setTime(date); int day = c.get(Calendar.DATE); c.set(Calendar.DATE, day + 1); String dayAfter = new SimpleDateFormat("yyyy-MM-dd") .format(c.getTime()); return dayAfter; } } 时间间隔的获取 /** * 两个时间相差距离多少小时 * * @param str1 * 时间参数 1 格式:1990-01-01 12:00:00 * @param str2 * 时间参数 2 格式:2009-01-01 12:00:00 * @return long[] 返回值为:{天, 时, 分, 秒} */ public static long getDistanceTimes(String str1, String str2) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; long day = 0; long hour = 0; long min = 0; long sec = 0; try { one = df.parse(str1); two = df.parse(str2); long time1 = one.getTime(); long time2 = two.getTime(); long diff; if (time1 < time2) { diff = time2 - time1; } else { diff = time1 - time2; } day = diff / (24 * 60 * 60 * 1000); hour = (diff / (60 * 60 * 1000) - day * 24); min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60); sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); } catch (ParseException e) { e.printStackTrace(); } return day*24 + hour; } 年月日的比较以及日期间隔的获取 /** * 起始年月日yyyy-MM-dd与终止年月日yyyy-MM-dd之间的比较。 * * @param DATE1 * 格式为yyyy-MM-dd * @param DATE2 * 格式为yyyy-MM-dd * @return isFirstBig。 */ @SuppressLint("SimpleDateFormat") public static boolean CompareDate(String DATE1, String DATE2) { boolean isFirstBig = false; DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); try { Date dt1 = df.parse(DATE1); Date dt2 = df.parse(DATE2); if (dt1.compareTo(dt2) == 1) { System.out.println("dt1 在dt2前"); isFirstBig = true; } else if (dt1.getTime() < dt2.getTime()) { System.out.println("dt1在dt2后"); isFirstBig = false; } } catch (Exception exception) { exception.printStackTrace(); } return isFirstBig; } /** * 起始年月yyyy-MM与终止月yyyy-MM之间的比较。 * * @param DATE1 * 格式为yyyy-MM * @param DATE2 * 格式为yyyy-MM * @return isFirstBig。 */ @SuppressLint("SimpleDateFormat") public static boolean CompareDateMonth(String DATE1, String DATE2) { boolean isFirstBig = false; DateFormat df = new SimpleDateFormat("yyyy-MM"); try { Date dt1 = df.parse(DATE1); Date dt2 = df.parse(DATE2); if (dt1.compareTo(dt2) == 1) { System.out.println("dt1 在dt2前"); isFirstBig = true; } else if (dt1.getTime() < dt2.getTime()) { System.out.println("dt1在dt2后"); isFirstBig = false; } } catch (Exception exception) { exception.printStackTrace(); } return isFirstBig; } /** * 起始年月yyyy-MM与终止月yyyy-MM之间跨度的月数。 * * @param beginMonth * 格式为yyyy-MM * @param endMonth * 格式为yyyy-MM * @return 整数。 */ public static int getIntervalMonth(String beginMonth, String endMonth) { int intBeginYear = Integer.parseInt(beginMonth.substring(0, 4)); int intBeginMonth = Integer.parseInt(beginMonth.substring(beginMonth .indexOf("-") + 1)); int intEndYear = Integer.parseInt(endMonth.substring(0, 4)); int intEndMonth = Integer.parseInt(endMonth.substring(endMonth .indexOf("-") + 1)); return ((intEndYear - intBeginYear) * 12) + (intEndMonth - intBeginMonth) + 1; } /** * 求两个日期相差天数 * * @param sd * 起始日期,格式yyyy-MM-dd * @param ed * 终止日期,格式yyyy-MM-dd * @return 两个日期相差天数 */ public static long getIntervalDays(String sd, String ed) { return ((java.sql.Date.valueOf(ed)).getTime() - (java.sql.Date .valueOf(sd)).getTime()) / (3600 * 24 * 1000); } /** * 得到指定月的天数 * */ public static int getMonthLastDay(int year, int month) { Calendar a = Calendar.getInstance(); a.set(Calendar.YEAR, year); a.set(Calendar.MONTH, month - 1); a.set(Calendar.DATE, 1);//把日期设置为当月第一天 a.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天 int maxDate = a.get(Calendar.DATE); return maxDate; } 按照日期排序 public class TimeSort implements Comparator { public int compare(Object arg0, Object arg1) { NoteBean user0 = (NoteBean) arg0; NoteBean user1 = (NoteBean) arg1; int flag = user1.getTime().compareTo(user0.getTime()); return flag; } } 调用方法 TimeSort sort = new TimeSort(); Collections.sort(beanList, sort);
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3