DateTools.java

import java.text.SimpleDateFormat;
import java.util.Date;
/*** 日期操作类*/
public class DateTools {/**yyyyMMddHHmmss* * @return*/public static String getAllDate(){SimpleDateFormat   lFormat; //格式可以自己根据需要修改   lFormat   =     new   SimpleDateFormat("yyyyMMddHHmmss");   String   gRtnStr   =   lFormat.format(new Date()); return gRtnStr;}/*** 获得yymmdd类型的日期* @param date* @return*/public static String getDateString(Date date){String year =(date.getYear()+1900)+"";String mm = (date.getMonth()+1)+"";if(Integer.valueOf(mm).intValue()<10){mm="0"+mm;}String day = date.getDate()+"";if(Integer.valueOf(day).intValue()<10)day="0"+day;return year+mm+day;}/*** 获得yymmdd类型的日期(日期的前1天)* @param date* @return*/public static String getZDateString(Date date){date.setDate(date.getDate()-1);String year =(date.getYear()+1900)+"";String mm = (date.getMonth()+1)+"";if(Integer.valueOf(mm).intValue()<10){mm="0"+mm;}String day = date.getDate()+"";if(day.length()==1)day="0"+day;return year+mm+day;}/*** 获得yy-mm-dd类型的日期* @param date* @return*/public  static String DateString(Date date){String year =(date.getYear()+1900)+"";String mm = (date.getMonth()+1)+"";if(Integer.valueOf(mm).intValue()<10){mm="0"+mm;}String day = date.getDate()+"";if(day.length()==1){day="0"+day;}return year+"-"+mm+"-"+day;}//得到当前时间public static String getCurrentDateTime() {java.text.SimpleDateFormat d = new java.text.SimpleDateFormat();d.applyPattern("HH:mm:ss");java.util.Date nowdate = new java.util.Date();String str_date = d.format(nowdate);return str_date;}/*** 时间格式化* @return*/public static String getTimeString(String time){String[] ti = time.split(":");if(ti[1].length()==1){time = ti[0]+"0"+ti[1];}else{time = ti[0]+ti[1];}return time;}public static String TimeString(){Date date = new Date();return getTimeString(date.getHours()+":"+date.getMinutes());}public static void main(String args[]){System.out.println(DateTools.getZDateString(new Date()));}
}

DateTime.java

import java.util.*;
import java.text.*;public class DateTime {public DateTime() {}public static final long SECOND = 1000;public static final long MINUTE = 60 * SECOND;public static final long HOUR = 60 * MINUTE;public static final long DAY = 24 * HOUR;public static final long WEEK = 7 * DAY;public static final String SHORTFORMAT = "yyyy-MM-dd";public static final String SHORTFORMATNOSPIT = "yyyyMMdd";public static final String YEARMONTHFORMAT = "yyyy-MM";public static final String LONGFORMAT = "yyyy-MM-dd HH:mm:ss";/*** 获得yymmdd类型的日期* @param date* @return*/public static String getDateString(Date date){String year =(date.getYear()+1900)+"";String mm = (date.getMonth()+1)+"";if(Integer.valueOf(mm).intValue()<10){mm="0"+mm;}String day = date.getDate()+"";return year+mm+day;}/*** 获得yy-mm-dd类型的日期* @param date* @return*/public  static String DateString(Date date){String year =(date.getYear()+1900)+"";String mm = (date.getMonth()+1)+"";if(Integer.valueOf(mm).intValue()<10){mm="0"+mm;}String day = date.getDate()+"";if(day.length()==1){day="0"+day;}return year+"-"+mm+"-"+day;}// 得到某一天是星期几public static int getDateInWeek(String strDate) {DateFormat df = DateFormat.getDateInstance();try {df.parse(strDate);java.util.Calendar c = df.getCalendar();int day = c.get(Calendar.DAY_OF_WEEK) - Calendar.SUNDAY;return day;} catch (ParseException e) {return -1;}}//得到当前日期public static String getCurrentDate() {java.text.SimpleDateFormat d = new java.text.SimpleDateFormat();d.applyPattern("yyyy-MM-dd");java.util.Date nowdate = new java.util.Date();String str_date = d.format(nowdate);return str_date;}//得到当前日期时间public static String getCurrentDateTime() {java.text.SimpleDateFormat d = new java.text.SimpleDateFormat();d.applyPattern("yyyy-MM-dd HH:mm:ss");java.util.Date nowdate = new java.util.Date();String str_date = d.format(nowdate);return str_date;}//根据日期获得日期时间public static String getDateTime(java.util.Date date) {java.text.SimpleDateFormat d = new java.text.SimpleDateFormat();d.applyPattern("yyyy-MM-dd HH:mm:ss");String str_date = d.format(date);return str_date;}//获得某月的最后一天public static int getDayNum(int year, int month) {if (month == 2) {return year % 400 != 0 && (year % 4 != 0 || year % 100 == 0) ? 28: 29;}String SmallMonth = ",4,6,9,11,";return SmallMonth.indexOf(String.valueOf(String.valueOf((new StringBuffer(",")).append(String.valueOf(month)).append(",")))) < 0 ? 31 : 30;}//返回两个日期之间隔了多少天public static int DateDiff(Date date1, Date date2) {int i = (int) ( (date1.getTime() - date2.getTime()) / 3600 / 24 / 1000);return i;}//从放有日期的字符串中得到,相应的年,月,日 style is "Y"or"y" 返回年 style is "M"or"m" 返回月 style//is "D"or"d" 返回日 日期字符串要求 "YYYY-MM-DD"public static int getYearMonthDate(String strDate, String style) {int year;int month;int day;int firstDash;int secondDash;if (strDate == null) {return 0;}firstDash = strDate.indexOf('-');secondDash = strDate.indexOf('-', firstDash + 1);if ((firstDash > 0) & (secondDash > 0)& (secondDash < strDate.length() - 1)) {year = Integer.parseInt(strDate.substring(0, firstDash));month = Integer.parseInt(strDate.substring(firstDash + 1,secondDash));day = Integer.parseInt(strDate.substring(secondDash + 1));} else {return 0;}if (style.equalsIgnoreCase("Y")) {return year;} else if (style.equalsIgnoreCase("M")) {return month;} else if (style.equalsIgnoreCase("D")) {return day;} else {return 0;}}// 某一天,过几天后是几号public static java.sql.Date DateAdd(java.sql.Date date, int addday) {java.sql.Date datenew = null;int year = DateTime.getYearMonthDate(date.toString(), "Y");int month = DateTime.getYearMonthDate(date.toString(), "M");int day = DateTime.getYearMonthDate(date.toString(), "D");day = day + addday;String dayStr = Integer.toString(year) + "-" + Integer.toString(month) +"-" + Integer.toString(day);datenew = datenew.valueOf(dayStr);//datenew.setTime(datenew.getTime()+day*3600*24*1000);//有问题。 改return datenew;}//某一天的前几天是几号public static java.sql.Date DateBefore(java.sql.Date date, int addday) {java.sql.Date datenew = null;int year = DateTime.getYearMonthDate(date.toString(), "Y");int month = DateTime.getYearMonthDate(date.toString(), "M");int day = DateTime.getYearMonthDate(date.toString(), "D");day = day - addday;String dayStr = Integer.toString(year) + "-" + Integer.toString(month)+ "-" + Integer.toString(day);datenew = datenew.valueOf(dayStr);// datenew.setTime(datenew.getTime()+day*3600*24*1000);// 有问题。 改return datenew;}//某一天是否是年的头一天public static boolean isYearFirstDay(java.sql.Date date) {boolean i = false;if ((DateTime.getYearMonthDate(date.toString(), "M") == 1)&& (DateTime.getYearMonthDate(date.toString(), "D") == 1)) {i = true;}return i;}// 某一天是否是半年的头一天public static boolean isHalfYearFirstDay(java.sql.Date date) {boolean i = false;if (((DateTime.getYearMonthDate(date.toString(), "M") == 1) && (DateTime.getYearMonthDate(date.toString(), "D") == 1))|| ((DateTime.getYearMonthDate(date.toString(), "M") == 7) && (DateTime.getYearMonthDate(date.toString(), "D") == 1))) {i = true;}return i;}public static String getHalfYearFirstDay(java.sql.Date date) {String month = "01";if (DateTime.getYearMonthDate(date.toString(), "M") >= 7) {month = "07";}String day = Integer.toString(DateTime.getYearMonthDate(date.toString(), "Y"))+ "-" + month + "-01";return day;}// 某一天是否是半年的最后一天public static boolean isHalfYearLastDay(java.sql.Date date) {boolean i = false;if (((DateTime.getYearMonthDate(date.toString(), "M") == 12) && (DateTime.getYearMonthDate(date.toString(), "D") == 31))|| ((DateTime.getYearMonthDate(date.toString(), "M") == 6) && (DateTime.getYearMonthDate(date.toString(), "D") == 30))) {i = true;}return i;}public static String getHalfYearLastDay(java.sql.Date date) {String month = "-06-30";if (DateTime.getYearMonthDate(date.toString(), "M") >= 7) {month = "-12-31";}String day = Integer.toString(getYearMonthDate(date.toString(), "Y"))+ "-" + month;return day;}// 某一天是否是年的最后一天public static boolean isYearLastDay(java.sql.Date date) {boolean i = false;if ((DateTime.getYearMonthDate(date.toString(), "M") == 12)&& (DateTime.getYearMonthDate(date.toString(), "D") == 31)) {i = true;}return i;}//某一天是否是季的头一天public static boolean isQuarterFirstDay(java.sql.Date date) {boolean i = false;if (((DateTime.getYearMonthDate(date.toString(), "M") == 1)|| (DateTime.getYearMonthDate(date.toString(), "M") == 4)|| (DateTime.getYearMonthDate(date.toString(), "M") == 7) || (DateTime.getYearMonthDate(date.toString(), "M") == 10))&& (DateTime.getYearMonthDate(date.toString(), "D") == 1)) {i = true;}return i;}public static String getQuarterFirstDay(java.sql.Date date) {String month = "01";if (DateTime.getYearMonthDate(date.toString(), "M") >= 10) {month = "10";} else if (DateTime.getYearMonthDate(date.toString(), "M") >= 7) {month = "07";} else if (DateTime.getYearMonthDate(date.toString(), "M") >= 4) {month = "04";} else if (DateTime.getYearMonthDate(date.toString(), "M") >= 1) {month = "01";}String day = Integer.toString(DateTime.getYearMonthDate(date.toString(), "Y"))+ "-" + month + "-01";return day;}//某一天是否是季的最后一天public static boolean isQuarterLastDay(java.sql.Date date) {boolean i = false;if ((DateTime.getYearMonthDate(date.toString(), "M") == 3)&& (DateTime.getYearMonthDate(date.toString(), "D") == 31)) {i = true;}if ((DateTime.getYearMonthDate(date.toString(), "M") == 6)&& (DateTime.getYearMonthDate(date.toString(), "D") == 30)) {i = true;}if ((DateTime.getYearMonthDate(date.toString(), "M") == 9)&& (DateTime.getYearMonthDate(date.toString(), "D") == 30)) {i = true;}if ((DateTime.getYearMonthDate(date.toString(), "M") == 12)&& (DateTime.getYearMonthDate(date.toString(), "D") == 31)) {i = true;}return i;}public static String getQuarterLastDay(java.sql.Date date) {String month = "-01-31";if (DateTime.getYearMonthDate(date.toString(), "M") >= 10) {month = "-12-31";} else if (DateTime.getYearMonthDate(date.toString(), "M") >= 7) {month = "-09-30";} else if (DateTime.getYearMonthDate(date.toString(), "M") >= 4) {month = "-06-30";}String day = Integer.toString(DateTime.getYearMonthDate(date.toString(), "Y"))+ "-" + month;return day;}//某一天是否是月的最后一天public static boolean isMonthLastDay(java.sql.Date date) {boolean i = false;java.sql.Date des_date = null;String month;String str_date = date.toString();String year = str_date.substring(0, str_date.indexOf("-"));int m = new Integer(str_date.substring(str_date.indexOf("-") + 1,str_date.lastIndexOf("-"))).intValue() + 1;month = new Integer(m).toString();if (m < 10) {month = "0" + month;}java.sql.Date mid_date = null;mid_date = mid_date.valueOf(year + "-" + month + "-01");des_date = DateTime.DateAdd(mid_date, -1);if (DateTime.DateDiff(des_date, date) == 0) {i = true;}return i;}//某一天是否是月的第一天public static boolean isMonthFisrtDay(java.sql.Date date) {boolean i = false;if ((DateTime.getYearMonthDate(date.toString(), "D") == 1)) {i = true;}return i;}//获得月的第一天public static String getMonthFisrtDay(java.sql.Date date){String month;if (DateTime.getYearMonthDate(date.toString(), "M") > 9) {month = Integer.toString(DateTime.getYearMonthDate(date.toString(), "M"));} else {month = "0"+ Integer.toString(DateTime.getYearMonthDate(date.toString(), "M"));}String day = Integer.toString(DateTime.getYearMonthDate(date.toString(), "Y"))+ "-" + month + "-01";return day;}public static java.sql.Timestamp getTimestamp() {try {java.text.SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");java.util.Calendar calendar = java.util.Calendar.getInstance();String mystrdate = myFormat.format(calendar.getTime());return java.sql.Timestamp.valueOf(mystrdate);} catch (Exception e) {return null;}}public static java.sql.Timestamp getTimestamp(String datestr) {try {java.text.SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String mystrdate = myFormat.format(myFormat.parse(datestr));return java.sql.Timestamp.valueOf(mystrdate);} catch (Exception e) {return null;}}//格式化日期(Y-年,M-月,D-日 HH:mm:ss 小时:分钟:秒)public static String getDate(java.util.Date date, String format) {String result = null;try {java.text.SimpleDateFormat myFormat = new SimpleDateFormat(format);result = myFormat.format(date);} catch (Exception e) {return null;}return result;}public static String getDate(java.util.Date date) {return getDate(date, LONGFORMAT);}//转换成时间戳public static java.sql.Timestamp getDate(String datestr) {try {java.text.SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");Date date = myFormat.parse(datestr);myFormat.applyLocalizedPattern("yyyy-MM-dd HH:mm:ss");String mystrdate = myFormat.format(date);return java.sql.Timestamp.valueOf(mystrdate);} catch (Exception e) {return null;}}//将日期格式化成yyyy-MM-dd形式public static java.util.Date format(String datestr) {try {java.text.SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");Date date = myFormat.parse(datestr);return date;} catch (Exception e) {return new Date(datestr);}}//格式化日期(Y-年,M-月,D-日 HH:mm:ss 小时:分钟:秒)public static java.util.Date format(String datestr, String format) {try {java.text.SimpleDateFormat myFormat = new SimpleDateFormat(format);Date date = myFormat.parse(datestr);return date;} catch (Exception e) {return null;}}//获得数据库格式的日期public static java.sql.Date getSqlDate(java.util.Date date) {java.sql.Date result = null;try {java.text.SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");String mystrdate = myFormat.format(date);result = java.sql.Date.valueOf(mystrdate);} catch (Exception e) {return null;}return result;}public static java.util.Date addMonth(java.util.Date date, int month) {String strdate = getDate(date, SHORTFORMAT);int curmonth = Integer.parseInt(strdate.substring(5, 7));int year = Integer.parseInt(strdate.substring(0, 4));int addyear = month / 12;year = year + addyear;curmonth = curmonth + (month % 12);if (curmonth > 12) {curmonth = 1;year = year + 1;}String strmonth = String.valueOf(curmonth);if (strmonth.length() == 1) {strmonth = "0" + strmonth;}strdate = String.valueOf(year) + "-" + strmonth + "-"+ strdate.substring(8, 10);return format(strdate, SHORTFORMAT);}/*** 传递日期,  获得上个月的最后1天* @param dt* @return*/public static String getUpMDate(Date dt){dt.setDate(1);dt.setDate(dt.getDate()-1);return dt.toLocaleString();}/***得到当前是那一天。**/public static String getDate() {java.text.SimpleDateFormat d = new java.text.SimpleDateFormat();d.applyPattern("yyyy-MM-dd");java.util.Date nowdate = new java.util.Date();String str_date = d.format(nowdate);return str_date;}/*** 将10位日期格式化为8位* @param dt* @return*/public static String getShortDate(String dt){if(dt != null){java.text.SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");try {Date date = myFormat.parse(dt);return getDate(date,SHORTFORMATNOSPIT);} catch (ParseException e) {return dt;}}elsereturn dt;}/*** 将8位日期格式化为10位* @param dt* @return*/public static String getLongDate(String dt){if(dt != null){java.text.SimpleDateFormat myFormat = new SimpleDateFormat("yyyyMMdd");try {Date date = myFormat.parse(dt);return getDate(date,SHORTFORMAT);} catch (ParseException e) {return dt;}}elsereturn dt;}/*** 判断是否是当月* @param month* @return*/public static boolean isSameYearMonth(String date){try{String currdate = getCurrentDate();currdate = getShortDate(currdate).substring(0,6);String lastdate = getShortDate(date).substring(0,6);if(lastdate.equals(currdate)){return true;}else{return false;}}catch(NumberFormatException e){return false;}}public static void main(String[] args){Date d = new Date("20070829");Date f = new Date("20070912");System.out.println(d.getDate()-f.getDate());}
}

这几天一直在处理Java的日期问题,通常需要按要求生成日期的话,通常会用到util包中的Calendar类,再用Calendar的getTime()方法生成对应的Date,最后用SimpleDateFormat输出。

 

1. 获取当期日期、年份、月份

import java.util.Calendar;

public class Main {
  public static void main(String[] args) {
    Calendar now = Calendar.getInstance();
    System.out.println("Current Year is : " + now.get(Calendar.YEAR));
    // month start from 0 to 11
    System.out.println("Current Month is : " + (now.get(Calendar.MONTH) + 1));
    System.out.println("Current Date is : " + now.get(Calendar.DATE));
  }
}

2. 获取前一天、前一个月的日期

Calendar calendar = Calendar.getInstance();//此时打印它获取的是系统当前时间
        calendar.add(Calendar.DATE, -1);    //
得到前一天

String  yestedayDate

= new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());


        calendar.add(Calendar.MONTH, -1);    //得到前一个月
        int year = calendar.get(Calendar.YEAR);


       int month = calendar.get(Calendar.MONTH)+1; //
输出前一月的时候要记得加1

3. 字符串转为日期格式

String date = "2010-02-01 23:59:59";

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

try {

Date d = sf.parse(date);

System.out.println(sf.format(d));

} catch (ParseException e) {

e.printStackTrace();

}

Java Date 日期 时间 相关方法相关推荐

  1. java Date日期时间相减 精确到毫秒

    本人是代码菜鸟 首先按照从其他地方介绍的普遍的计算方式,Date.getTime获取日期时间的long值来相减 //设置Date格式为"年-月-日 小时:分钟:秒.毫秒" Simp ...

  2. java处理日期时间 相加减

    参考:http://alexfc.iteye.com/blog/363185 JAVA处理日期时间常用方法: 1.java.util.Calendar  Calendar 类是一个抽象类,它为特定瞬间 ...

  3. java获取日期/时间

    获取年月日.小时分钟秒 public class DateTimeTest {public static void main(String[] args) {Calendar cal = Calend ...

  4. Java Date日期的比较

    Java Date日期的比较 为何要写这篇博客 实践方法 总结 为何要写这篇博客 Date类日期比较可以应用在很多方面上,例如集合时间的筛选,或者数据库数据的筛选.因为多个方法可以应用在不同方法之上, ...

  5. mongo java 日期,Java 8日期/时间(JSR-310)类型与Spring Data MongoDB的映射

    我有Java 8日期/时间字段的简单文档 @Document public class Token { private Instant createdAt; ... } 我希望坚持使用Spring D ...

  6. java date 日期部分_Java处理Date时间格式的各种场景工具类(二)

    public class DateUtil { public enum DateType { YEAR, MONTH, DAY, HH, MI, SS, YYYY_MM_DD, YYYYMMDD } ...

  7. Java中Date日期时间的工具类

    package me.xueyao.date;import java.sql.Timestamp; import java.text.ParseException; import java.text. ...

  8. java 创建 时间_java创建Date日期时间笔记

    (1)public Date() 创建的日期类对象的日期时间被设置成创建时刻相对应的日期时间. 例: Java代码 1.Date today=new Date();  //today被设置成创建时刻相 ...

  9. Java 8日期时间API教程:LocalDateTime

    该博文是Java 8中引入的有关Date Time API的系列教程的一部分.在本博文中,我将介绍LocalDateTime类中可用的一些方法. LocalDateTime是一个不可更改的线程安全对象 ...

最新文章

  1. [JS] 题解:提取不重复的整数
  2. 2017.2.12【初中部 GDKOI】模拟赛B组 T4:pot
  3. Logistic Regression 之基础知识准备
  4. Linux文件基本操作管理
  5. linux怎么把磁盘的东西拷贝,[Linux]如何拷贝已有数据磁盘,并将新的磁盘挂接到其他虚机上...
  6. linux下samba病毒,Samba 用户模拟漏洞(CVE-2016-2125)
  7. Android应用程序之间共享文字和图片(一)
  8. 新闻发布项目——实体类(newsTb)
  9. python in memory_使用 in_memory 工作空间的注意事项
  10. HDFS剩余空间大小的Java接口,java api获取hdfs索引大小
  11. 数据结构之查找算法:B树
  12. 【LeetCode】15.Longest Common Prefix
  13. IntelliJ IDEA For Mac 快捷键大全
  14. 补丁KB2999226纯净版下载地址
  15. K610D i7 D2 HM86 HD4600 安装 Mac OS 10.15.2 提供工具和EFI
  16. ifonts提取下载ttf文件
  17. 2021-2027全球与中国3D 动作捕捉解决方案市场现状及未来发展趋势
  18. IDA 中怎么查看函数的调用关系
  19. matplotlib-04 xlabel设置x轴的标签
  20. 对驱动器盘符和卷名的认识

热门文章

  1. 创建一个类 new 与 不加new 有什么区别?
  2. 重庆市计算机专业高考试题,今年重庆高校毕业生达21.1万人 计算机类专业需求大...
  3. css 识别变量中的换行符_Python编程 第二章——变量和简单数据类型
  4. 修改sh文件_修改Android分区大小
  5. 动态二级下拉菜单html,js实现简洁大方的二级下拉菜单效果代码
  6. 道格拉斯-普克 Douglas-Peuker(DP算法) python java实现
  7. Python 中 pass的使用
  8. c++语言常量,Go语言常量和const关键字
  9. python关键字from,Python 中的 yield from 关键字
  10. git上传代码到码云(详细)