最新51CTO-Java时间操作总结代码版汇总

51C T O-J a v a时间操作总结代码版直接在main函数中测试方法即可import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;import java.util.Locale;import org.tulip.StringUtil;public class TimeUtils extends ng.time.DateUtils{public static final SimpleDateFormat dateFormat = new SimpleDateFormat(yyyy-MM-dd HHmmss);public static final SimpleDateFormat dateFormatHiddenHour = new SimpleDateFormat(yyyy-MM-dd);public static final String getFormatedNowTime(){return dateFormat.format(new Date());}格式化时间(yyyy-MM-dd HHmmss)@param date@returnpublic static final String getFormatedTime(Date date){return dateFormat.format(date);}格式化时间@param date@returnpublic static final String getFormatedTime(SimpleDateFormat dateFormat,Date date){return dateFormat.format(date);}格式化时间(yyyy-MM-dd)@param date@returnpublic static final String getFormatedTimeHiddenHour(Date date){return dateFormatHiddenHour.format(date);}长整型时间转换(yyyy-MM-dd HHmmss)@param timestamp@returnpublic static final String getFormatedTime(Long timestamp){Date date = new Date(timestamp);return dateFormat.format(date);}显示完整时间public static String getRecentDateString(int offset){offset 与当前日期的偏移量如-1代表昨天Date date = new Date();date = new Date(date.getTime() + offset 86400000);return dateFormat.format(date);}public static String getRecentDateString(Date date,int offset){offset 与当前日期的偏移量如-1代表昨天date = new Date(date.getTime() + offset 86400000);return dateFormat.format(date);}只显示年月日部份public static String getRecentDateExcludeHourString(int offset){offset 与当前日期的偏移量如-1代表昨天Date date = new Date();date = new Date(date.getTime() + offset 86400000);return dateFormatHiddenHour.format(date);}public static String getRecentDateExcludeHourString(String str,int offset) throws ParseException{offset 与当前日期的偏移量如-1代表昨天Date date = dateFormatHiddenHour.parse(str);date = new Date(date.getTime() + offset 86400000);return dateFormatHiddenHour.format(date);}public static String getRecentDateFormatString(SimpleDateFormat dateFormat,String str,int offset) throws ParseException{offset 与当前日期的偏移量如-1代表昨天Date date = dateFormat.parse(str);date = new Date(date.getTime() + offset 86400000);return dateFormat.format(date);}STRING日期转化为DATE型@param sDt@return@throws ParseExceptionpublic static Date stringToDate(String sDt) throws ParseException{return dateFormat.parse(sDt);}public static Date stringToDateExcludeHour(String sDt) throws ParseException {return dateFormatHiddenHour.parse(sDt);}public static Date stringToFormatDate(SimpleDateFormat dateFormat,String sDt) throws ParseException{return dateFormat.parse(sDt);}返回两个时间差,毫秒@param now@param returnDate@returnpublic static long daysBetween(Date now, Date returnDate){Calendar cNow = Calendar.getInstance();Calendar cReturnDate = Calendar.getInstance();cNow.setTime(now);cReturnDate.setTime(returnDate);setTimeToMidnight(cNow);setTimeToMidnight(cReturnDate);long todayMs = cNow.getTimeInMillis();long returnMs = cReturnDate.getTimeInMillis();long intervalMs = todayMs - returnMs;return intervalMs;}毫秒转成实际天数@param intervalMs@returnpublic static int millisecondsToDays(long intervalMs){return (int) (intervalMs (1000 86400));}设置时间从0开始@param calendarpublic static void setTimeToMidnight(Calendar calendar){calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);}月份的最后一天@param ymStr 只包含年和月的字符串@returnpublic static int getLastDayOfMonth(String ymStr){ymStr = StringUtils.getFormatDateStr(ymStr);int year = Integer.parseInt(ymStr.substring(0,ymStr.indexOf(-)));int month = Integer.parseInt(ymStr.substring(ymStr.indexOf(-)+1));Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, year);c.set(Calendar.MONTH, month-1);return c.getActualMaximum(Calendar.DAY_OF_MONTH);}月份的最后一天@param year@param month@returnpublic static int getLastDayOfMonth(int year, int month){Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, year);c.set(Calendar.MONTH, month);c.set(Calendar.DATE, 1);c.add(Calendar.DATE, -1);System.out.println(c.get(Calendar.DATE)+_+c.get(Calendar.MONTH)); return c.getActualMaximum(Calendar.DAY_OF_MONTH);}月份的第一天@param year@param month@returnpublic static int getFirstDayOfMonth(int year, int month){Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, year);c.set(Calendar.MONTH, month-1);return (c.getActualMinimum(Calendar.DAY_OF_MONTH));}两个时间相差的月份@param begin@param end@returnpublic static int getDiffMonth(String begin, String end){try{SimpleDateFormat myFormatter = new SimpleDateFormat(yyyy-MM-dd); java.util.Date date1 = myFormatter.parse(end);java.util.Date date2 = myFormatter.parse(begin);int y1 = (date1.getYear() - date2.getYear());int m2 = y1 12 + (date1.getMonth() - date2.getMonth());return m2;} catch (Exception e){return 0;}}计算两个日期相隔的天数public static int getDiffDay(String firstString,String secondString){SimpleDateFormat df=new SimpleDateFormat(yyyy-MM-dd);Date firstDate=null;Date secondDate=null;try{firstDate=df.parse(firstString);secondDate=df.parse(secondString);} catch(Exception e){日期型字符串格式错误}int nDay=(int)((secondDate.getTime()-firstDate.getTime())(2460601000)); return nDay;}日期加法@param when 被计算的日期@param field the time field. 在Calendar中定义的常数,例如Calendar.DATE@param amount 加数@return 计算后的日期public static Date add(Date when, int field, int amount) { Calendar calendar = Calendar.getInstance();calendar.setTime(when);calendar.add(field,amount);return calendar.getTime();}计算给定的日期加上给定的天数。

合集下载

Java中的日期和时间操作

Java中的日期和时间操作

Java中的日期和时间操作Java中提供了丰富的日期和时间操作的类和方法,方便我们对日期和时间进行处理和计算。

本文将介绍Java中常用的日期和时间操作。

一、日期和时间类在Java中,日期和时间相关的类主要包括以下几个:1. java.util.Date:表示日期和时间的类,常用的构造方法有无参构造方法、接收毫秒数的构造方法和接收年月日的构造方法。

2. java.util.Calendar:提供了对日期和时间进行操作的类,可以进行日期的加减、获取年月日等操作。

3. java.time.LocalDate:表示日期的类,提供了对年月日的操作和计算。

4. java.time.LocalTime:表示时间的类,提供了对时分秒的操作和计算。

5. java.time.LocalDateTime:表示日期和时间的类,提供了对日期时间的操作和计算。

6. java.time.format.DateTimeFormatter:用于日期和时间的格式化,可以将日期时间对象格式化为指定的字符串,或者将字符串解析为对应的日期时间对象。

二、日期和时间操作示例下面分别介绍一些常用的日期和时间操作示例。

1. 获取当前日期和时间:```javaimport java.time.LocalDateTime;public class DateTimeExample {public static void main(String[] args) {LocalDateTime now = LocalDateTime.now(); System.out.println(now);}}```2. 格式化日期和时间:```javaimport java.time.LocalDateTime;import java.time.format.DateTimeFormatter; public class DateTimeExample {public static void main(String[] args) {LocalDateTime now = LocalDateTime.now();DateTimeFormatter formatter =DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");String formattedDateTime = now.format(formatter);System.out.println(formattedDateTime);}}```3. 计算两个日期之间的差值:```javaimport java.time.LocalDate;import java.time.temporal.ChronoUnit;public class DateTimeExample {public static void main(String[] args) {LocalDate date1 = LocalDate.of(2022, 1, 1);LocalDate date2 = LocalDate.of(2022, 12, 31);long daysBetween = ChronoUnit.DAYS.between(date1, date2);System.out.println("Days between: " + daysBetween);}}```4. 日期的加减操作:```javaimport java.time.LocalDate;import java.time.temporal.ChronoUnit;public class DateTimeExample {public static void main(String[] args) {LocalDate now = LocalDate.now();LocalDate oneWeekLater = now.plus(1, ChronoUnit.WEEKS);LocalDate oneMonthEarlier = now.minus(1,ChronoUnit.MONTHS);System.out.println("One week later: " + oneWeekLater);System.out.println("One month earlier: " + oneMonthEarlier);}}```5. 判断某个日期是否在另一个日期之前或之后:```javaimport java.time.LocalDate;public class DateTimeExample {public static void main(String[] args) {LocalDate date1 = LocalDate.of(2022, 1, 1);LocalDate date2 = LocalDate.of(2022, 12, 31);boolean isBefore = date1.isBefore(date2);boolean isAfter = date1.isAfter(date2);System.out.println("Is date1 before date2? " + isBefore); System.out.println("Is date1 after date2? " + isAfter);}}```6. 获取特定日期的年、月、日信息:```javaimport java.time.LocalDate;public class DateTimeExample {public static void main(String[] args) {LocalDate now = LocalDate.now();int year = now.getYear();int month = now.getMonthValue();int day = now.getDayOfMonth();System.out.println("Year: " + year);System.out.println("Month: " + month);System.out.println("Day: " + day);}}```三、总结本文介绍了Java中常用的日期和时间操作,包括日期和时间的类、日期和时间的格式化、日期和时间的计算等内容。

Java日期时间使用总结

Java日期时间使用总结

Java⽇期时间使⽤总结Java 中有关⽇期时间的操作,其实⾮常简单,没什么好介绍的。

之所以编写简单知识点的博客,主要还是因为最近⽐较忙碌。

但是不管多么忙碌,⾃⼰还是想挤出时间,保持编写技术博客的习惯。

毕竟编写博客,不仅仅是为了总结,向别⼈分享技术,更重要的是锻炼⾃⼰的思考沉淀能⼒,以及写作表达能⼒。

下⾯我就快速简单的介绍⼀下 Java 中的⽇期时间操作类吧。

⼀、传统的⽇期时间类传统的⽇期时间操作类,主要有两个:Date 类和 SimpleDateFormat 类。

Date 类代码⽰例:import java.util.Date;public class DateDemo {public static void main(String[] args) {//使⽤空参构造 Date 对象,打印出的时间就是本机系统当前时间Date date1 = new Date();System.out.println(date1);/*使⽤有参构造 Date 对象,参数传递的是从计算机原点时间起的毫秒值在零时区,计算机原点时间是 1970 年 1 ⽉ 1 ⽇ 0 点整因为中国在东⼋区,所以对于中国⽽⾔,计算机原点时间是 1970 年 1 ⽉ 1 ⽇ 8 点整。

传递 0 毫秒,表⽰获取计算机原点时间*/Date date2 = new Date(0L);//打印出来的是 Thu Jan 01 08:00:00 CST 1970//也就是1970年1⽉1⽇8点,主要是因为中国是东⼋区,因此需要加8个⼩时System.out.println(date2);Date date3 = new Date();//通过 Date 对象的 getTime 可以获取到从计算机原点时间累计到现在的毫秒值long time1 = date3.getTime();System.out.println(time1);//Java也提供了⼀个快捷⽅法,获取到从计算机原点时间累计到现在的毫秒值long time2 = System.currentTimeMillis();//打印出来的 time2 和 time1 的值是相同的System.out.println(time2);Date date4 = new Date();//通过 setTime 传⼊从计算机原点起累计的毫秒值,可以设置出新的时间date4.setTime(0L);System.out.println(date4); //此时打印出的是计算机原点时间}}SimpleDateFormat 类的代码演⽰:import java.text.SimpleDateFormat;import java.util.Date;/*SimpleDateFormat 主要是为了将 Date 对象格式化为⾃定义的⽇期时间字符串也可以将指定格式的⽇期格式字符串,解析为 Date 对象*/public class DateDemo {public static void main(String[] args) {//将【⽇期对象】转换为【字符串】代码⽰例Date date1 = new Date();//创建了⼀个⽇期格式。

java日期操作大全

java日期操作大全

java日期操作大全先来一个:取得指定月份的第一天与取得指定月份的最后一天/iamin/847990.html/*** 取得指定月份的第一天** @param strdate String* @return String*/public String getMonthBegin(String strdate){java.util.Date date = parseFormatDate(strdate);return formatDateByFormat(date,"yyyy-MM") + "-01";}/*** 取得指定月份的最后一天** @param strdate String* @return String*/public String getMonthEnd(String strdate){java.util.Date date = parseFormatDate(getMonthBegin(strdate)); Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.MONTH,1);calendar.add(Calendar.DAY_OF_YEAR, -1);return formatDate(calendar.getTime());}/*** 常用的格式化日期** @param date Date* @return String*/public String formatDate(java.util.Date date){return formatDateByFormat(date,"yyyy-MM-dd");}/*** 以指定的格式来格式化日期** @param date Date* @param format String* @return String*/public String formatDateByFormat(java.util.Date date,String format) {String result = "";if(date != null){try{SimpleDateFormat sdf = new SimpleDateFormat(forma t);result = sdf.format(date);}catch(Exception ex){("date:" + date);ex.printStackTrace();}}return result;}//---------------------------------------------------------------package com.app.util;/*** 日期操作** @author xxx* @version 2.0 jdk1.4.0 tomcat5.1.0 * Updated Date:2005/03/10*/public class DateUtil {/*** 格式化日期** @param dateStr* 字符型日期* @param format* 格式* @return返回日期*/public static java.util.Date parseDate(String dateStr, String format) {java.util.Date date = null;try {java.text.DateFormat df = new java.text.SimpleDateF ormat(format);String dt=Normal.parse(dateStr).replaceAll("-", "/");if((!dt.equals(""))&&(dt.length()<format.length())){dt+=format.substring(dt.length()).replaceAll("[Y yMmDdHhSs]","0");}date = (java.util.Date) df.parse(dt);} catch (Exception e) {}return date;}public static java.util.Date parseDate(String dateStr) {return parseDate(dateStr, "yyyy/MM/dd");}public static java.util.Date parseDate(java.sql.Date date) {return date;}public static java.sql.Date parseSqlDate(java.util.Date date) {if (date != null)return new java.sql.Date(date.getTime());elsereturn null;}public static java.sql.Date parseSqlDate(String dateStr, String forma t) {java.util.Date date = parseDate(dateStr, format);return parseSqlDate(date);}public static java.sql.Date parseSqlDate(String dateStr) {return parseSqlDate(dateStr, "yyyy/MM/dd");}public static java.sql.Timestamp parseTimestamp(String dateStr,String format) {java.util.Date date = parseDate(dateStr, format);if (date != null) {long t = date.getTime();return new java.sql.Timestamp(t);} elsereturn null;}public static java.sql.Timestamp parseTimestamp(String dateStr) { return parseTimestamp(dateStr, "yyyy/MM/dd HH:mm:ss"); }/*** 格式化输出日期** @param date* 日期* @param format* 格式* @return返回字符型日期*/public static String format(java.util.Date date, String format) {String result = "";try {if (date != null) {java.text.DateFormat df = new java.text.Simp leDateFormat(format);result = df.format(date);}} catch (Exception e) {}return result;}public static String format(java.util.Date date) {return format(date, "yyyy/MM/dd");}/*** 返回年份** @param date* 日期* @return返回年份*/public static int getYear(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.get(java.util.Calendar.YEAR);}/*** 返回月份** @param date* 日期* @return返回月份*/public static int getMonth(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.get(java.util.Calendar.MONTH) + 1;}/*** 返回日份** @param date* 日期* @return返回日份*/public static int getDay(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.get(java.util.Calendar.DAY_OF_MONTH);}/*** 返回小时** @param date* 日期* @return返回小时*/public static int getHour(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.get(java.util.Calendar.HOUR_OF_DAY);}/*** 返回分钟** @param date* 日期* @return返回分钟*/public static int getMinute(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.get(java.util.Calendar.MINUTE);}/*** 返回秒钟** @param date* 日期* @return返回秒钟*/public static int getSecond(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.get(java.util.Calendar.SECOND);}/*** 返回毫秒** @param date* 日期* @return返回毫秒*/public static long getMillis(java.util.Date date) {java.util.Calendar c = java.util.Calendar.getInstance();c.setTime(date);return c.getTimeInMillis();}/*** 返回字符型日期** @param date* 日期* @return返回字符型日期*/public static String getDate(java.util.Date date) {return format(date, "yyyy/MM/dd");}/*** 返回字符型时间** @param date* 日期* @return返回字符型时间*/public static String getTime(java.util.Date date) {return format(date, "HH:mm:ss");}/*** 返回字符型日期时间** @param date* 日期* @return返回字符型日期时间*/public static String getDateTime(java.util.Date date) { return format(date, "yyyy/MM/dd HH:mm:ss"); }/*** 日期相加** @param date* 日期* @param day* 天数* @return返回相加后的日期*/public static java.util.Date addDate(java.util.Date date, int day) { java.util.Calendar c = java.util.Calendar.getInstance();c.setTimeInMillis(getMillis(date) + ((long) day) * 24 * 3600 * 1000);return c.getTime();}/*** 日期相减** @param date* 日期* @param date1* 日期* @return返回相减后的日期*/public static int diffDate(java.util.Date date, java.util.Date date1) { return (int) ((getMillis(date) - getMillis(date1)) / (24 * 360 0 * 1000));}}我来个简单点的,也许有点用Calendar now = Calendar.getInstance();int year = now.get(Calendar.YEAR);int date = now.get(Calendar.DAY_OF_MONTH);int month = now.get(Calendar.MONTH) + 1;int hour = now.get(Calendar.HOUR);int min = now.get(Calendar.MINUTE);int sec = now.get(Calendar.SECOND);在最近的一个OA中,我需要判断两个日期是否是同一周,根据一个给定的日期获得所属周的周一和周五的日期。

java时间操作函数汇总 - Java编程

java时间操作函数汇总 - Java编程

//
时
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); java.util.Date date1 = format.parse("2002-02-28 23:16:00"); long Time=(date1.getTime()/1000)+60*30; date1.setTime(Time*1000); String mydate1=formatter.format(date1);
获 时 public static String getSystemTime(){ Date date=new Date(); SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return df.format(date); }
Calendar cal = Calendar.getInstance(); // SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss G E D F w W a E F"); String mDateTime=formatter.format(cal.getTime());
//1 java.util.Date myDate=new java.util.Date(); long myTime=(myDate.getTime()/1000)-60*60*24*365; myDate.setTime(myTime*1000); String mDate=formatter.format(myDate);

java关于时间的用法汇总

java关于时间的用法汇总

***<p>Title:时间格式转化与计算</p>*/package ;import java.util.Calendar;import java.util.Date;import java.text.*;public class DateTime{public DateTime(){}/***取得系统当前时间*@return String yyyy-mm-dd*/public String getCurrentDate(){Calendar rightNow=Calendar.getInstance();int year=rightNow.get(rightNow.YEAR);int month=rightNow.get(rightNow.MONTH)+1;int day=rightNow.get(rightNow.DATE);return year+"-"+month+"-"+day;}/***取得系统当前时间*@return String yyyy年mm月dd日*/public String getCurrentDate1(){Calendar rightNow=Calendar.getInstance();int year=rightNow.get(rightNow.YEAR);int month=rightNow.get(rightNow.MONTH)+1;int day=rightNow.get(rightNow.DATE);return year+"年"+month+"月"+day+"日"; }/***取得系统当前时间*@return String yyyymmdd*/public String getCurrentDate2(){Calendar rightNow=Calendar.getInstance();int year=rightNow.get(rightNow.YEAR);int month=rightNow.get(rightNow.MONTH)+1;int day=rightNow.get(rightNow.DATE);return year+""+month+""+day;}/***取得系统当前时间*@return String yyyy-mm*/public String getCurrentDate3(){Calendar rightNow=Calendar.getInstance();int year=rightNow.get(rightNow.YEAR);int month=rightNow.get(rightNow.MONTH)+1;//int day=rightNow.get(rightNow.DATE);return year+"-"+month;}/***取得系统当前时间*@return String yyyyMMddhhmmss*/public String getCurrentDate4(){Calendar c=Calendar.getInstance();c.add(c.SECOND,0);return""+ c.get(c.YEAR)+""+(c.get(c.MONTH)+1)+""+ c.get(c.DATE)+""+c.get(c.HOUR_OF_DAY)+""+c.get(c.MINUTE)+""+c.get(c.SECOND);}/***取得系统当前时间*@return String yyyy-MM-dd hh:mm:ss*//*public String getCurrentDate5(){SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");java.util.Date date=new java.util.Date();String time=simpleDateFormat.format(date);return time;}*//***取得系统当前时间*@return String yyyy-MM-dd hh:mm:ss*/public String getCurrentDate5(){Calendar c=Calendar.getInstance();c.add(c.SECOND,0);return""+ c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+ c.get(c.DATE)+" "+c.get(c.HOUR_OF_DAY)+":"+c.get(c.MINUTE)+":"+c.get(c.SECOND);}/***取得系统当前时间常用于订单号*@return String yyyyMMddhhmmss*/public String getCurrentDate6(){Calendar c=Calendar.getInstance();c.add(c.SECOND,0);String year=c.get(c.YEAR)+"";return""+year.subSequence(2,year.length())+""+(c.get(c.MONTH)+1)+""+ c.get(c.DATE)+"-"+c.get(c.HOUR_OF_DAY)+""+c.get(c.MINUTE)+""+c.get(c.SECOND)+"-"+c.get( LISECOND);}/***取得系统当前时间前n个月的相对应的一天*@param n int*@return String yyyy-mm-dd*/public String getNMonthBeforeCurrentDay(int n){Calendar c=Calendar.getInstance();c.add(c.MONTH,-n);return""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);}/***取得系统当前时间后n个月的相对应的一天*@param n int*@return String yyyy-mm-dd*/public String getNMonthAfterCurrentDay(int n){Calendar c=Calendar.getInstance();c.add(c.MONTH,n);return""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);}/***取得系统当前时间前n天*@param n int*@return String yyyy-mm-dd*/public String getNDayBeforeCurrentDate(int n){Calendar c=Calendar.getInstance();c.add(c.DAY_OF_MONTH,-n);return""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE); }/***取得系统当前时间后n天*@param n int*@return String yyyy-mm-dd*/public String getNDayAfterCurrentDate(int n){Calendar c=Calendar.getInstance();c.add(c.DAY_OF_MONTH,n);return""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE); }//---------------------------------------------------------------------//取过去一个时间对应的系统当年的一天public String getCurrentDateAfterPastDate(String sPastDate){if(sPastDate!=null&&!sPastDate.equals("")){Date date=switchStringToDate(sPastDate);Calendar c=Calendar.getInstance();c.setTime(date);int iPastYear=c.get(c.YEAR);Calendar c1=Calendar.getInstance();int iCurrentYear=c1.get(c1.YEAR);c.add(c.YEAR,iCurrentYear-iPastYear);return""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);}else{return null;}}/***将一个日期字符串转化成日期*@param sDate String*@return Date yyyy-mm-dd*/public Date switchStringToDate(String sDate){Date date=null;try{SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");date=df.parse(sDate);}catch(Exception e){System.out.println("日期转换失败:"+e.getMessage());}return date;}/***输入两个字符串型的日期,比较两者的大小*@param fromDate String*@param toDate String*@return boolean before为true*/public boolean compareTwoDateBigOrSmall(String fromDate,String toDate){ Date dateFrom=this.switchStringToDate(fromDate);Date dateTo=this.switchStringToDate(toDate);if(dateFrom.before(dateTo)){return true;}else{return false;}}/***将一个日期字符串转化成Calendar*@param sDate String*@return Calendar*/public Calendar switchStringToCalendar(String sDate){Date date=switchStringToDate(sDate);Calendar c=Calendar.getInstance();c.setTime(date);return c;}/***将一个日期转化成Calendar*@param date Date*@return Calendar*/public Calendar switchStringToCalendar(Date date){Calendar c=Calendar.getInstance();c.setTime(date);return c;}public String string2Date(String dateString)throws ng.Exception{/*DateFormat dateFormat;dateFormat=new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");dateFormat.setLenient(false);java.util.Date timeDate=dateFormat.parse(dateString);//util类型//java.sql.Date dateTime=new java.sql.Date(timeDate.getTime());//sql类型java.sql.Timestamp dateTime=new java.sql.Timestamp(timeDate.getTime());//Timestamp类型*/SimpleDateFormat newk=new SimpleDateFormat("yyyy.MM.dd hh:mm:ss"); SimpleDateFormat old=new SimpleDateFormat("MMM dd hh:mm:ss yyyy");String strDate="Mar2200:42:002002";Date d=old.parse(strDate);System.out.println(newk.format(d));return newk.format(d);}/***取得某个时间前n个月的相对应的一天*@param sDate String*@param n int*@return String yyyy-mm-dd*/public String getNMonthBeforeOneDay(String sDate,int n){Calendar c=switchStringToCalendar(sDate);c.add(c.MONTH,-n);return""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);}//取得某个时间后n个月的相对应的一天public String getNMonthAfterOneDay(String sDate,int n){Calendar c=switchStringToCalendar(sDate);c.add(c.MONTH,n);return""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);}//取得某个时间前n天,格式为yyyy-mm-ddpublic String getNDayBeforeOneDate(String sDate,int n){Calendar c=switchStringToCalendar(sDate);c.add(c.DAY_OF_MONTH,-n);return""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE); }//取得某个时间后n天,格式为yyyy-mm-ddpublic String getNDayAfterOneDate(String sDate,int n){Calendar c=switchStringToCalendar(sDate);c.add(c.DAY_OF_MONTH,n);return""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE); }//判断系统当前时间是不是润年public boolean isRunNian(){java.util.Calendar rightNow=java.util.Calendar.getInstance();int year=rightNow.get(rightNow.YEAR);if(0==year%4&&(year%100!=0||year%400==0)){return true;}else{return false;}}public static void main(String args[]){DateTime a=new DateTime();try{System.out.println(a.getCurrentDate6());System.out.println(a.getCurrentDate6());}catch(Exception e){System.err.println();}}java操作日期比较麻烦,和ASP比就可以说是相当麻烦了。

Java日期时间使用总结

Java日期时间使用总结

Java日期时间使用总结一、Java中的日期概述日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题。

在Java中,操作日期主要涉及到以下几个类:1、java.util.Date类 Date 表示特定的瞬间,精确到毫秒。

从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。

Date 中的把日期解释为年、月、日、小时、分钟和秒值的方法已废弃。

2、java.text.DateFormat(抽象类)DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间。

日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、分析(文本-> 日期)和标准化。

将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年,1 月 1 日 00:00:00 这一刻开始的毫秒数。

3、java.text.SimpleDateFormat(DateFormat的直接子类)SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。

它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。

SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。

但是,仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或getDateTimeInstance 来新的创建日期-时间格式化程序。

4、java.util.Calendar(抽象类)Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

Java 日期时间总结

Java 日期时间目录1、Date 对象中的方法 (2)2、日期比较 (3)3、获取当前日期时间 (4)4、使用 SimpleDateFormat 格式化日期 (4)5、日期和时间的格式化编码 (4)6、使用printf格式化日期 (6)7、解析字符串为时间 (7)8、Java 休眠(sleep) (8)9、测量时间 (9)10、Calendar类 (9)11、创建一个指定日期的Calendar对象 (10)12、Calendar类对象字段类型 (10)13、GregorianCalendar类 (11)1、Date 对象中的方法2、日期比较Java使用以下三种方法来比较两个日期:2.1使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。

2.2使用方法 before(),after() 和 equals()。

例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

2.3使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

3、获取当前日期时间Java中获取当前日期和时间很简单,使用Date 对象的toString() 方法来打印当前日期和时间,如下所示:4、使用 SimpleDateFormat 格式化日期SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。

SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。

例如:注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。

5、日期和时间的格式化编码时间模式字符串用来指定时间格式。

在此模式中,所有的 ASCII 字母被保留为模式字母,定义如下:6、使用printf格式化日期printf 方法可以很轻松地格式化时间和日期。

JAVA中的时间操作

JAVA中的时间操作java中的时间操作不外乎这四种情况:1、获取当前时间2、获取某个时间的某种格式3、设置时间4、时间的运算好,下面就针对这四种情况,一个一个搞定。

一、获取当前时间有两种方式可以获得,第一种,使用Date类。

j2SE的包里有两个Date类,一个是java.sql.Date,一个是java.util.Date这里,要使用java.util.Date。

获取当前时间的代码如下Date date = new Date();date.getTime();还有一种方式,使用System.currentTimeMillis();这两种方式获得的结果是一样的,都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数。

当前的时间得到了,但实际的应用中最后往往不是要用这个long型的东西,用户希望得到的往往是一个时间的字符串,比如“2006年6月18号”,或“2006-06-18”,老外可能希望得到的是“06-18-2006”,诸如此类等等。

这就是下一个要解决的问题二、获取某个时间的某种格式获取时间的格式,需要用到一个专门用于时间格式的类java.text.SimpleDateFormat。

首先,定义一个SimpleDateFormat变量SimpleDateFormat sdf = new SimpleDateFormat("",Locale.SIMPLIFIED_CHINESE);这个构造函数的定义如下:SimpleDateFormat(String pattern, Locale locale)第一个参数pattern,我们后面再解释,这里我们使用一个"",第二个参数,是用来设置时区的,这里用到了java.util.Locale这个类,这个类了面定义了很多静态变量,直接拿过来用就OK,我们把时区设置为Locale.SIMPLIFIED_CHINESE,只看名字,这个静态变量的意义已经很清楚了。

51CTO-Java时间操作总结代码版共35页word资料

直接在main函数中测试方法即可import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;import java.util.Locale;import org.tulip.StringUtil;public class TimeUtils extends ng.time.DateUtils public static final SimpleDateFormat dateFormat = new SimpleDateFormat(yyyy-MM-dd HHmmss);public static final SimpleDateFormat dateFormatHiddenHour = new SimpleDateFormat(yyyy-MM-dd);public static final String getFormatedNowTime()return dateFormat.format(new Date());格式化时间(yyyy-MM-dd HHmmss)@param date@returnpublic static final String getFormatedTime(Date date)return dateFormat.format(date);格式化时间@param date@returnpublic static final String getFormatedTime(SimpleDateFormat dateFormat,Date date)return dateFormat.format(date);格式化时间(yyyy-MM-dd)@param date@returnpublic static final String getFormatedTimeHiddenHour(Date date)return dateFormatHiddenHour.format(date);长整型时间转换(yyyy-MM-dd HHmmss)@param timestamp@returnpublic static final String getFormatedTime(Long timestamp)Date date = new Date(timestamp);return dateFormat.format(date);显示完整时间public static String getRecentDateString(int offset)offset 与当前日期的偏移量如-1代表昨天Date date = new Date();date = new Date(date.getTime() + offset 86400000);return dateFormat.format(date);public static String getRecentDateString(Date date,int offset) offset 与当前日期的偏移量如-1代表昨天date = new Date(date.getTime() + offset 86400000);return dateFormat.format(date);只显示年月日部份public static String getRecentDateExcludeHourString(int offset)offset 与当前日期的偏移量如-1代表昨天Date date = new Date();date = new Date(date.getTime() + offset 86400000);return dateFormatHiddenHour.format(date);public static String getRecentDateExcludeHourString(String str,int offset) throws ParseExceptionoffset 与当前日期的偏移量如-1代表昨天Date date = dateFormatHiddenHour.parse(str);date = new Date(date.getTime() + offset 86400000);return dateFormatHiddenHour.format(date);public static String getRecentDateFormatString(SimpleDateFormat dateFormat,String str,int offset) throws ParseExceptionoffset 与当前日期的偏移量如-1代表昨天Date date = dateFormat.parse(str);date = new Date(date.getTime() + offset 86400000);return dateFormat.format(date);STRING日期转化为DATE型@param sDt@return@throws ParseExceptionpublic static Date stringToDate(String sDt) throws ParseExceptionreturn dateFormat.parse(sDt);public static Date stringToDateExcludeHour(String sDt) throws ParseExceptionreturn dateFormatHiddenHour.parse(sDt);public static Date stringToFormatDate(SimpleDateFormat dateFormat,String sDt) throws ParseExceptionreturn dateFormat.parse(sDt);返回两个时间差,毫秒@param now@param returnDate@returnpublic static long daysBetween(Date now, Date returnDate)Calendar cNow = Calendar.getInstance();Calendar cReturnDate = Calendar.getInstance();cNow.setTime(now);cReturnDate.setTime(returnDate);setTimeToMidnight(cNow);setTimeToMidnight(cReturnDate);long todayMs = cNow.getTimeInMillis();long returnMs = cReturnDate.getTimeInMillis();long intervalMs = todayMs - returnMs;return intervalMs;毫秒转成实际天数@param intervalMs@returnpublic static int millisecondsToDays(long intervalMs) return (int) (intervalMs (1000 86400));设置时间从0开始@param calendarpublic static void setTimeToMidnight(Calendar calendar) calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);月份的最后一天@param ymStr 只包含年和月的字符串@returnpublic static int getLastDayOfMonth(String ymStr){ymStr = StringUtils.getFormatDateStr(ymStr);int year = Integer.parseInt(ymStr.substring(0,ymStr.indexOf(-)));int month = Integer.parseInt(ymStr.substring(ymStr.indexOf(-)+1));Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, year);c.set(Calendar.MONTH, month-1);return c.getActualMaximum(Calendar.DAY_OF_MONTH);月份的最后一天@param year@param month@returnpublic static int getLastDayOfMonth(int year, int month)Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, year);c.set(Calendar.MONTH, month);c.set(Calendar.DATE, 1);c.add(Calendar.DATE, -1);System.out.println(c.get(Calendar.DATE)+_+c.get(Calendar.MONTH) );return c.getActualMaximum(Calendar.DAY_OF_MONTH);月份的第一天@param year@param month@returnpublic static int getFirstDayOfMonth(int year, int month)Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, year);c.set(Calendar.MONTH, month-1);return (c.getActualMinimum(Calendar.DAY_OF_MONTH));两个时间相差的月份@param begin@param end@returnpublic static int getDiffMonth(String begin, String end)trySimpleDateFormat myFormatter = new SimpleDateFormat(yyyy-MM-dd);java.util.Date date1 = myFormatter.parse(end);java.util.Date date2 = myFormatter.parse(begin);int y1 = (date1.getYear() - date2.getYear());int m2 = y1 12 + (date1.getMonth() - date2.getMonth());return m2;} catch (Exception e)return 0;计算两个日期相隔的天数public static int getDiffDay(String firstString,String secondString){SimpleDateFormat df=new SimpleDateFormat(yyyy-MM-dd); Date firstDate=null;Date secondDate=null;try{firstDate=df.parse(firstString);secondDate=df.parse(secondString);} catch(Exception e){日期型字符串格式错误intnDay=(int)((secondDate.getTime()-firstDate.getTime())(246060100 0));return nDay;日期加法@param when 被计算的日期@param field the time field. 在Calendar中定义的常数,例如Calendar.DATE@param amount 加数@return 计算后的日期public static Date add(Date when, int field, int amount) { Calendar calendar = Calendar.getInstance();calendar.setTime(when);calendar.add(field,amount);return calendar.getTime();计算给定的日期加上给定的天数。

java学习之日期的运算代码

java学习之日期的运算代码java学习之日期的运算代码java学习之日期的运算代码复制代码代码如下:import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class HelloWorld {public static void main(String[] args) {//指定时间输出格式SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");Date dt = new Date();System.out.println("当前时间:" + sdf.format(dt));Calendar rightNow = Calendar.getInstance();rightNow.setTime(dt);rightNow.add(Calendar.YEAR,-1);//当时日期减1年System.out.println("减1年:" + sdf.format(rightNow.getTime()));rightNow.add(Calendar.MONTH,3);//(在刚才的'结果上)再加3个月System.out.println("再加3个月:" + sdf.format(rightNow.getTime()));rightNow.add(Calendar.DAY_OF_YEAR,10);//(在刚才的结果上)再加10天System.out.println("再加10天:" + sdf.format(rightNow.getTime()));}}输出结果:当前时间:2013-02-21 09:40:49 减1年:2012-02-21 09:40:49再加3个月:2012-05-21 09:40:49 再加10天:2012-05-31 09:40:49。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档