Java取日期的所有时间点可根据年月日
package com.util;import java.text.DateFormat;import java.text.ParseException;import java.text.ParsePosition;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class TimeUtil {//用来全局控制上一周,本周,下一周的周数变化private int weeks = 0;private int MaxDate;//一月最大天数private int MaxYear;//一年最大天数/*** @param args*/public static void main(String[] args) {TimeUtil tt = new TimeUtil();// System.out.println("获取当天日期:"+tt.getNowTime("yyyy-MM-dd"));// System.out.println("获取本周一日期:"+tt.getMondayOFWeek());// System.out.println("获取本周日的日期~:"+tt.getCurrentWeekday());// System.out.println("获取上周一日期:"+tt.getPreviousWeekday());// System.out.println("获取上周日日期:"+tt.getPreviousWeekSunday());// System.out.println("获取下周一日期:"+tt.getNextMonday());// System.out.println("获取下周日日期:"+tt.getNextSunday());// System.out.println("获得相应周的周六的日期:"+tt.getNowTime("yyyy-MM-dd"));// System.out.println("获取本月第一天日期:"+tt.getFirstDayOfMonth());// System.out.println("获取本月最后一天日期:"+tt.getDefaultDay());// System.out.println("获取上月第一天日期:"+tt.getPreviousMonthFirst()); // System.out.println("获取上月最后一天的日期:"+tt.getPreviousMonthEnd());// System.out.println("获取下月第一天日期:"+tt.getNextMonthFirst());// System.out.println("获取下月最后一天日期:"+tt.getNextMonthEnd());// System.out.println("获取本年的第一天日期:"+tt.getCurrentYearFirst()); DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd");Date date = null;try {date = fmt.parse("2008-02-21");} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("获取某年最后一天日期:"+tt.getCurrentYearEnd(date)); System.out.println("获取某年的去年的第一天日期:"+tt.getPreviousYearFirst(date));System.out.println("获取某年去年的最后一天日期:"+tt.getPreviousYearEnd(date));System.out.println("获取某年的第一天日期:"+tt.getCurrentYearfirst(date));// System.out.println("获取明年第一天日期:"+tt.getNextYearFirst());// System.out.println("获取明年最后一天日期:"+tt.getNextYearEnd());// System.out.println("获取本季度第一天到最后一天:"+tt.getThisSeasonTime(11));// System.out.println("获取两个日期之间间隔天数2008-12-1~2008-9.29:"+TimeUtil.getTwoDay("2008-12-1","2008-9-29"));System.out.println("ceshi "+tt.getLastDayOfMonths(date));System.out.println("cessss "+ tt.getFirstDayOfMonth(date));System.out.println("ceshi last year day "+tt.getLastYearFirstDayOfMonth(date));System.out.println("ceshi last year day "+tt.getLastYearLastDayOfMonths(date));System.out.println(tt.updateLastDate(date));}/*** 得到二个日期间的间隔天数*/public static String getTwoDay(String sj1, String sj2) {SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");long day = 0;try {java.util.Date date = myFormatter.parse(sj1);java.util.Date mydate = myFormatter.parse(sj2);day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);} catch (Exception e) {return "";}return day + "";}/*** 根据一个日期,返回是星期几的字符串** @param sdate* @return*/public static String getWeek(String sdate) {// 再转换为时间Date date = TimeUtil.strToDate(sdate);Calendar c = Calendar.getInstance();c.setTime(date);// int hour=c.get(Calendar.DAY_OF_WEEK);// hour中存的就是星期几了,其范围 1~7// 1=星期日 7=星期六,其他类推return new SimpleDateFormat("EEEE").format(c.getTime());}/*** 将短时间格式字符串转换为时间 yyyy-MM-dd** @param strDate* @return*/public static Date strToDate(String strDate) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); ParsePosition pos = new ParsePosition(0);Date strtodate = formatter.parse(strDate, pos);return strtodate;}/*** 两个时间之间的天数** @param date1* @param date2* @return*/public static long getDays(String date1, String date2) {if (date1 == null || date1.equals(""))return 0;if (date2 == null || date2.equals(""))return 0;// 转换为标准时间SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd"); java.util.Date date = null;java.util.Date mydate = null;try {date = myFormatter.parse(date1);mydate = myFormatter.parse(date2);} catch (Exception e) {}long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); return day;}// 计算当月最后一天,返回字符串public String getDefaultDay(){String str = "";SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");Calendar lastDate = Calendar.getInstance();lastDate.set(Calendar.DATE,1);//设为当前月的1号lastDate.add(Calendar.MONTH,1);//加一个月,变为下月的1号lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天str=sdf.format(lastDate.getTime());return str;}// 上月第一天public String getPreviousMonthFirst(){String str = "";SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");Calendar lastDate = Calendar.getInstance();lastDate.set(Calendar.DATE,1);//设为当前月的1号lastDate.add(Calendar.MONTH,-1);//减一个月,变为下月的1号//lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天str=sdf.format(lastDate.getTime());return str;}//获取当月第一天public String getFirstDayOfMonth(){String str = "";SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");Calendar lastDate = Calendar.getInstance();lastDate.set(Calendar.DATE,1);//设为当前月的1号str=sdf.format(lastDate.getTime());return str;}// 获得本周星期日的日期public String getCurrentWeekday() {weeks = 0;int mondayPlus = this.getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus+6);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}//获取当天时间public String getNowTime(String dateformat){Date now = new Date();SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);//可以方便地修改日期格式String hehe = dateFormat.format(now);return hehe;}// 获得当前日期与本周日相差的天数private int getMondayPlus() {Calendar cd = Calendar.getInstance();// 获得今天是一周的第几天,星期日是第一天,星期二是第二天......int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK)-1; //因为按中国礼拜一作为第一天所以这里减1if (dayOfWeek == 1) {return 0;} else {return 1 - dayOfWeek;}}//获得本周一的日期public String getMondayOFWeek(){weeks = 0;int mondayPlus = this.getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}//获得相应周的周六的日期public String getSaturday() {int mondayPlus = this.getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks + 6); Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}// 获得上周星期日的日期public String getPreviousWeekSunday() {weeks=0;weeks--;int mondayPlus = this.getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus+weeks);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}// 获得上周星期一的日期public String getPreviousWeekday() {weeks--;int mondayPlus = this.getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}// 获得下周星期一的日期public String getNextMonday() {weeks++;int mondayPlus = this.getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + 7); Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}// 获得下周星期日的日期public String getNextSunday() {int mondayPlus = this.getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + 7+6); Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}private int getMonthPlus(){Calendar cd = Calendar.getInstance();int monthOfNumber = cd.get(Calendar.DAY_OF_MONTH);cd.set(Calendar.DATE, 1);//把日期设置为当月第一天cd.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天MaxDate=cd.get(Calendar.DATE);if(monthOfNumber == 1){return -MaxDate;}else{return 1-monthOfNumber;}}//获得上月最后一天的日期public String getPreviousMonthEnd(){String str = "";SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");Calendar lastDate = Calendar.getInstance();lastDate.add(Calendar.MONTH,-1);//减一个月lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天 str=sdf.format(lastDate.getTime());return str;}//获得下个月第一天的日期public String getNextMonthFirst(){String str = "";SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");Calendar lastDate = Calendar.getInstance();lastDate.add(Calendar.MONTH,1);//减一个月lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天str=sdf.format(lastDate.getTime());return str;}//获得下个月最后一天的日期public String getNextMonthEnd(){String str = "";SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");Calendar lastDate = Calendar.getInstance();lastDate.add(Calendar.MONTH,1);//加一个月lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天 str=sdf.format(lastDate.getTime());return str;}//获得明年最后一天的日期public String getNextYearEnd(){String str = "";SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); Calendar lastDate = Calendar.getInstance();lastDate.add(Calendar.YEAR,1);//加一个年lastDate.set(Calendar.DAY_OF_YEAR, 1);lastDate.roll(Calendar.DAY_OF_YEAR, -1);str=sdf.format(lastDate.getTime());return str;}//获得明年第一天的日期public String getNextYearFirst(){String str = "";SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");Calendar lastDate = Calendar.getInstance();lastDate.add(Calendar.YEAR,1);//加一个年lastDate.set(Calendar.DAY_OF_YEAR, 1);str=sdf.format(lastDate.getTime());return str;}//获得本年有多少天private int getMaxYear(){Calendar cd = Calendar.getInstance();cd.set(Calendar.DAY_OF_YEAR,1);//把日期设为当年第一天cd.roll(Calendar.DAY_OF_YEAR,-1);//把日期回滚一天。
java处理年、月、周次以及起至日期大全
{
pType = 12;
} else
if(iType == 5)
{
pType = 13;
}
Cal.add(pType, iCount);
SimpleDateFormat sdf = null;
if(iType <= 2)
sdf = new SimpleDateFormat("yyyy-MM-dd");
int min = ss / 60;
int hour = min / 60;
int day = hour / 24;
if(iType == 0)
return hour;
if(iType == 1)
return min;
if(iType == 2)
return day;
else
return -1;
int hh = 0;
int mi = 0;
int ss = 0;
if(baseDate.length() > 12)
{
hh = Integer.parseInt(baseDate.substring(11, 13));
mi = Integer.parseInt(baseDate.substring(14, 16));
public boolean isLeapYear(int yearNum){
boolean isLeep = false;
/**判断是否为闰年,赋值给一标识符flag*/
if((yearNum % 4 == 0) && (yearNum % 100 != 0)){
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.util.Date类来实现,并结合ja va.te xt.Da teFor mat类来实现时间的格式化p ackag e net.sing lex.j avada te;/** * 以下默认时间日期显示方式都是汉语方式* 一般语言就默认汉语就可以了,时间日期的格式默认为MEDI UM风格,*比如:2013-6-10 13:14:41 * 以下显示的日期时间都是在Date类的基础上的来的,还可以利用Ca lenda r类来实现见类Tes tDate2.jav a* * @a uthor Sing leX * */im portjava.util.*; impor t jav a.tex t.*;p ublic clas s Tes tDate { p ublic stat ic vo id ma in(St ring[] arg s) { Dat e now = ne w Dat e();Calen dar c al =Calen dar.g etIns tance(); Date Forma t d1= Dat eForm at.ge tDate Insta nce(); //默认语言(汉语)下的默认风格(MEDIU M风格,比如:2013-6-10 13:14:41) Str ing s tr1 = d1.f ormat(now); Dat eForm at d2 = Da teFor mat.g etDat eTime Insta nce(); Str ing s tr2 = d2.f ormat(now); Dat eForm at d3 = Da teFor mat.g etTim eInst ance(); St ringstr3= d3.forma t(now); Da teFor mat d4 = D ateFo rmat.getIn stanc e();// 使用SHORT风格显示日期和时间Strin g str4 = d4.for mat(n ow);DateF ormat d5 =Date Forma t.get DateT imeIn stanc e(Dat eForm at.FU LL, D ateFo rmat.FULL); //显示日期,周,时间(精确到秒) Stri ng st r5 =d5.fo rmat(now); Date Forma t d6= Dat eForm at.ge tDate TimeI nstan ce(Da teFor mat.L ONG,DateF ormat.LONG); //显示日期。
JAVA处理日期时间常用方法
JAVA处理日期时间常用方法在Java中,处理日期和时间是非常常见的操作。
Java提供了许多内置的类和方法来处理日期和时间,这些类和方法可以帮助我们进行日期的计算、格式化、比较等操作。
本篇文章将介绍Java中常用的日期时间处理方法。
1. Java中的Date类:Java中的Date类表示了一个特定的日期和时间。
可以使用Date类的构造方法来创建一个表示当前日期和时间的对象,例如:```javaDate date = new Date(;```Date类提供了一些常用的方法,例如getYear(, getMonth(, getDay(, getHour(, getMinute(, getSecond(等,可以用来获取当前日期和时间的具体信息。
2. Java中的Calendar类:Java中的Calendar类比Date类更加灵活,可以进行更复杂的日期和时间计算。
为了创建一个Calendar对象,可以使用Calendar类的getInstance(方法,例如:```javaCalendar calendar = Calendar.getInstance(;```Calendar类提供了各种方法来进行日期和时间的计算和操作,例如add(方法可以增加或减少指定的日期和时间字段,例如增加三天:```javacalendar.add(Calendar.DAY_OF_MONTH, 3);```set(方法可以设置指定的日期和时间字段,例如设置年份为2024年:```javacalendar.set(Calendar.YEAR, 2024);```get(方法可以获取指定的日期和时间字段的值,例如获取月份:```javaint month = calendar.get(Calendar.MONTH);```其他常用的操作还包括比较两个日期的大小、格式化日期等。
3. Java中的SimpleDateFormat类:Java中的SimpleDateFormat类用于格式化日期和时间的输出。
java 年月日的枚举值
java 年月日的枚举值在Java中,可以使用Java 8中引入的java.time包中的枚举类型来表示年、月、日。
具体来说,可以使用Year、Month和DayOfWeek枚举类型来分别表示年、月和星期几。
1. Year枚举类型:Year枚举类型用于表示年份,它可以通过静态方法Year.now()获取当前的年份,也可以使用of()方法指定特定的年份。
例如:java.Year currentYear = Year.now();Year specificYear = Year.of(2022);2. Month枚举类型:Month枚举类型用于表示月份,它包括了1月到12月的枚举常量。
可以通过静态方法Month.valueOf("JANUARY")来获取特定月份的枚举常量,也可以直接使用Month.JANUARY这样的方式来表示月份。
例如:java.Month currentMonth = Month.JANUARY;Month specificMonth = Month.valueOf("FEBRUARY");3. DayOfWeek枚举类型:DayOfWeek枚举类型用于表示星期几,它包括了MONDAY到SUNDAY的枚举常量。
可以通过静态方法DayOfWeek.valueOf("MONDAY")来获取特定星期几的枚举常量,也可以直接使用DayOfWeek.MONDAY这样的方式来表示星期几。
例如:java.DayOfWeek currentDay = DayOfWeek.MONDAY;DayOfWeek specificDay = DayOfWeek.valueOf("TUESDAY");通过使用这些枚举类型,可以方便地表示和操作年、月、日的值,使得日期和时间的处理更加直观和简洁。
同时,Java 8中引入的新的日期时间API也提供了丰富的方法来对日期进行计算、格式化和解析,枚举类型的使用使得这些操作更加方便和安全。
java获取年月日的方法
Java获取年月日的方法在Java编程中,我们经常需要获取当前的年、月和日。
这些信息在许多应用程序中都是必需的,例如日历应用、日期处理和数据分析等。
本文将介绍几种获取年月日的方法,帮助你在Java中轻松地处理日期。
1. 使用Java.util.Date类Java.util.Date类是Java中处理日期和时间的基本类之一。
要获取当前的年、月和日,可以使用以下代码:import java.util.Date;import java.text.SimpleDateFormat;public class Main {public static void main(String[] args) {Date date = new Date();SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");SimpleDateFormat sdfMonth = new SimpleDateFormat("MM");SimpleDateFormat sdfDay = new SimpleDateFormat("dd");String year = sdfYear.format(date);String month = sdfMonth.format(date);String day = sdfDay.format(date);System.out.println("Year: " + year);System.out.println("Month: " + month);System.out.println("Day: " + day);}}在上面的代码中,我们使用了SimpleDateFormat类来格式化日期。
通过传入不同的格式化模式,我们可以获取所需的日期部分。
java获取每个月固定号数的方法
java获取每个月固定号数的方法以Java获取每个月固定号数的方法一、引言在编程中,我们经常需要获取每个月固定号数的日期,比如每个月的1号或者每个月的最后一天。
本文将介绍如何使用Java编程语言来获取每个月固定号数的方法。
二、使用Calendar类Java中的Calendar类提供了丰富的日期和时间操作方法,可以方便地获取每个月固定号数的日期。
1. 获取每个月的1号日期我们可以使用以下代码来获取每个月的1号日期:```javaimport java.util.Calendar;public class Main {public static void main(String[] args) {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.DAY_OF_MONTH, 1);int year = calendar.get(Calendar.YEAR);int month = calendar.get(Calendar.MONTH) + 1;int day = calendar.get(Calendar.DAY_OF_MONTH);System.out.println("每个月的1号日期为:" + year + "-" + month + "-" + day);}}```运行以上代码,输出的结果为当前日期所在月份的1号日期。
例如,如果当前日期为2022年12月15日,输出结果为:每个月的1号日期为:2022-12-1。
2. 获取每个月的最后一天日期我们可以使用以下代码来获取每个月的最后一天日期:```javaimport java.util.Calendar;public class Main {public static void main(String[] args) {Calendar calendar = Calendar.getInstance();int year = calendar.get(Calendar.YEAR);int month = calendar.get(Calendar.MONTH) + 1;int lastDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);System.out.println("每个月的最后一天日期为:" + year + "-" + month + "-" + lastDay);}}```运行以上代码,输出的结果为当前日期所在月份的最后一天日期。
JAVA获取各种日期时间
JAVA获取各种⽇期时间31 public void printFormatDate(Date d) {32 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");33 System.out.println(df.format(d));34 }3536 public void test1() {// 下个⽉第⼀天 37 Date d = new Date();38 d = DateUtils.ceiling(d, Calendar.MONTH);// 进位⽉份 39 printFormatDate(d);// 2016-02-01 00:00:00 40 }4142 public void test2() {// 下个⽉第⼀天 43 Date d = new Date();44 d = DateUtils.addMonths(d, 1);// ⽉+1 45 d = DateUtils.setDays(d, 1);// 设置⽇为1号 46 d = DateUtils.truncate(d, Calendar.DATE);// 过滤时分秒 47 printFormatDate(d);// 2016-02-01 00:00:00 48 }4950 public void test3() {// 当⽉最后⼀天最后⼀秒 51 Date d = new Date();52 d = DateUtils.ceiling(d, Calendar.MONTH);// 进位⽉份 53 d = DateUtils.addMilliseconds(d, -1);// 减少1秒 54 printFormatDate(d);// 2016-01-31 23:59:59 55 }5657 public void test4() {// 当⽉第⼀天第⼀秒 58 Date d = new Date();59 d = DateUtils.truncate(d, Calendar.MONTH);// 截取时间到⽉份 60 printFormatDate(d);// 2016-01-01 00:00:00 61 }6263 public void test5() {// 下个⽉的这个时候 64 Date d = new Date();65 d = DateUtils.addMonths(d, 1);66 printFormatDate(d);// 2016-02-21 09:46:02 67 }6869 public void test6() {// 昨天的这个时候 70 Date d = new Date();71 d = DateUtils.addDays(d, -1);// 增加1⽉,如果下个⽉没有这1天,那就不加 72 printFormatDate(d);// 2016-01-20 09:46:48 73 }7475 public void test7() {// addMonth的注意点:2⽉没有29号 76 Date d = new Date();77 d = DateUtils.setDays(d, 29);78 d = DateUtils.addMonths(d, 1);// 并没有增加 79 printFormatDate(d);// 2016-01-29 09:47:45 80 }8182 public void test8() {// 这个⽉15号 83 Date d = new Date();84 d = DateUtils.setDays(d, 15);85 d = DateUtils.truncate(d, Calendar.DATE);// 截取时间到⽇ 86 printFormatDate(d);// 2016-01-15 00:00:00 87 }8889 public void test9() {// 输出包含今天的这个星期的每⼀天,星期第⼀天是周⽇ 90 Date d = new Date();91 Iterator<Calendar> c = DateUtils.iterator(d, DateUtils.RANGE_WEEK_SUNDAY);92 System.out.println();93 while (c.hasNext()) {94 printFormatDate(new Date(c.next().getTimeInMillis()));95 }96 }9798 public void test10() {// 今天是今年第⼏天 99 Date d = new Date();100 System.out.println(DateUtils.getFragmentInDays(d, Calendar.YEAR));// 21101 }102103 public void test11() {// 这个⽉第⼀个周⽇104 Date d = new Date();105 d = DateUtils.setDays(d, 1);106 while (true) {107 Calendar c = Calendar.getInstance();108 c.setTime(d);109 if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {110 printFormatDate(d);// 2016-01-03 10:31:43111 break;112 } else {113 d = DateUtils.addDays(d, 1);114 }115 }116 }117118 public void test12() {// 距2⽉1号还有多少天119 Date d = new Date();120 Date d2 = new Date();121 d2 = DateUtils.ceiling(d, Calendar.MONTH);// 2.1号122 long day2 = DateUtils.getFragmentInDays(d2, Calendar.YEAR);//2.1是今年第⼏天?123 long day1 = DateUtils.getFragmentInDays(d, Calendar.YEAR);//今天是今年第⼏天?124 System.out.println(day2 - day1);//11125 }01.获取当⽉的天数Calendar a = Calendar.getInstance();a.set(Calendar.DATE, 1);a.roll(Calendar.DATE, -1);int maxDate = a.get(Calendar.DATE);return maxDate;02.根据年⽉获取对应的⽉份天数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);03.根据⽇期找到对应⽇期的星期String dayOfweek = "-1";try {SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");Date myDate = myFormatter.parse(date);SimpleDateFormat formatter = new SimpleDateFormat("E");String str = formatter.format(myDate);dayOfweek = str;} catch (Exception e) {System.out.println("错误!");}/*** 计算开始⽇期到结束⽇期之间⽉数* @param begDate 开始⽇期* @param endDate 结束⽇期* @return*/public static BigDecimal calculationAmount(Date begDate,Date endDate) {Calendar cal1 = Calendar.getInstance();cal1.setTime(begDate);cal1.add(Calendar.MONTH, 1);cal1.set(Calendar.DAY_OF_MONTH, cal1.getActualMinimum(Calendar.DAY_OF_MONTH));Date preMonth =cal1.getTime(); //开始⽇期的下⼀个⽉Calendar cal2 = Calendar.getInstance();cal2.setTime(endDate);cal2.add(Calendar.MONTH, -1);cal2.set(Calendar.DAY_OF_MONTH, cal2.getActualMaximum(Calendar.DAY_OF_MONTH));Date lastMonth = cal2.getTime(); //结束⽇期的上⼀个⽉long midValue = 0;//开始⽇期的下⼀个⽉和结束⽇期的上⼀个⽉之间有多少⽉if(preMonth.before(lastMonth)) {midValue = DataTimeUtils.differentDate("M", preMonth, lastMonth)+1;}long begDateNum = DataTimeUtils.differentDate("D", begDate, getEndMonthDate(begDate))+1;//开始⽇期到当前⽉底的的天数long begMouthNum = getCurrentMonthDay(begDate);//开始⽇期当前⽉有多少天BigDecimal begValue = new BigDecimal(begDateNum).divide(new BigDecimal(begMouthNum),6,BigDecimal.ROUND_HALF_UP); long endDateNum = DataTimeUtils.differentDate("D", getPreMonthDate(endDate),endDate)+1;//结束⽇期当⽉的第⼀天到结束⽇期的天数long endMouthNum = getCurrentMonthDay(endDate);//结束⽇期当前⽉有多少天BigDecimal endValue = new BigDecimal(endDateNum).divide(new BigDecimal(endMouthNum),6,BigDecimal.ROUND_HALF_UP); BigDecimal sumDate =begValue.add(endValue.add(new BigDecimal(midValue)));return sumDate;}/*** 判断⽇期是否在⾃然季内*/public static int getNaturalSeason(Date begDate) {Calendar beg = Calendar.getInstance();//设置开始⽇期beg.setTime(begDate);if((beg.get(Calendar.MONTH)+1)>0 && (beg.get(Calendar.MONTH)+1)<=3) {return 1;}else if((beg.get(Calendar.MONTH)+1)>=4 && (beg.get(Calendar.MONTH)+1)<=6) {return 2;}else if((beg.get(Calendar.MONTH)+1)>=7 && (beg.get(Calendar.MONTH)+1)<=9) {return 3;}else if((beg.get(Calendar.MONTH)+1)>=10 && (beg.get(Calendar.MONTH)+1)<=12) {return 4;}return 0;}/*** 判断⽇期是否在⾃然半年内*/public static int getNaturalHalfYear(Date begDate) {Calendar beg = Calendar.getInstance();//设置开始⽇期beg.setTime(begDate);if((beg.get(Calendar.MONTH)+1)>0 && (beg.get(Calendar.MONTH)+1)<=6) {return 1;}else if((beg.get(Calendar.MONTH)+1)>=7 && (beg.get(Calendar.MONTH)+1)<=12) {return 2;}return 0;}/*** 判断⽇期是否在⾃然年内*/public static int getNaturalYear(Date begDate) {Calendar beg = Calendar.getInstance();//设置开始⽇期beg.setTime(begDate);if((beg.get(Calendar.MONTH)+1)>0 && (beg.get(Calendar.MONTH)+1)<=12) {return 1;}return 0;}/*** 获取任意时间的⽉第⼀天* @param repeatDate* @return*/public static Date getPreMonthDate(Date repeatDate){return DateUtils.truncate(repeatDate,Calendar.MARCH);}/*** 获取任意时间的⽉的最后⼀天* @param repeatDate* @return*/public static Date getEndMonthDate(Date repeatDate) {Calendar calendar = Calendar.getInstance();calendar.setTime(repeatDate);calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); return calendar.getTime();}/*** 根据⽇期计算当⽉有多少天* @param date* @return*/public static long getCurrentMonthDay(Date date) {Calendar a = Calendar.getInstance();a.setTime(date);a.set(Calendar.DATE, 1);a.roll(Calendar.DATE, -1);int maxDate = a.get(Calendar.DATE);return maxDate;}/*** 判断时间格式*/public static boolean isValidDate(String str) {boolean convertSuccess=true;// 指定⽇期格式为四位年/两位⽉份/两位⽇期,注意yyyy-MM-dd区分⼤⼩写;SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");try {// 设置lenient为false. 否则SimpleDateFormat会⽐较宽松地验证⽇期,⽐如2007-02-29会被接受,并转换成2007-03-01 format.setLenient(false);format.parse(str);} catch (ParseException e) {// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对convertSuccess=false;}return convertSuccess;}/**** @param ts MinimumGuaranteeDomain 的list* @return false 时间交叉 true 时间不交叉*/public static boolean check(List<MinimumGuaranteeDomain> ts ) {Collections.sort(ts, new MinimumGuaranteeDomain());boolean flag=true;for(int i=0; i<ts.size()-1;i++) {MinimumGuaranteeDomain item1=ts.get(i);;MinimumGuaranteeDomain item2=ts.get(i+1);Date end = new Date(DataTimeUtils.getTimeLong(item1.getEnddate())*1000);Date beg = new Date(DataTimeUtils.getTimeLong(item2.getBegdate())*1000);if(DataTimeUtils.differentDate("D",end,beg)<0) {flag=false;break;}}return flag ;}。
java中获取日期和时间的方法总结
java中获取⽇期和时间的⽅法总结1、获取当前时间,和某个时间进⾏⽐较。
此时主要拿long型的时间值。
⽅法如下:要使⽤ java.util.Date 。
获取当前时间的代码如下Date date = new Date();date.getTime() ;还有⼀种⽅式,使⽤ System.currentTimeMillis() ;都是得到⼀个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年⼀⽉⼀号零时零分零秒相差的毫秒数⼀、获取当前时间, 格式为: yyyy-mm-dd hh-mm-ssDateFormat.getDateTimeInstance(2, 2, Locale.CHINESE).format(new java.util.Date());⼆、获取当前时间, 格式为: yyyy年mm⽉dd⽇上午/下午hh时mm分ss秒1 DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.CHINESE).format(new java.util.Date());三、获取当前时间(精确到毫秒), 格式为: yyyy-mm-dd hh:mm:ss.nnn1new java.sql.Timestamp(System.currentTimeMillis()).toString();⼀. 获取当前系统时间和⽇期并格式化输出:1import java.util.Date;2import java.text.SimpleDateFormat;3public class NowString {4public static void main(String[] args) {5 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置⽇期格式6 System.out.println(df.format(new Date()));// new Date()为获取当前系统时间7 }8 }⼆. 在数据库⾥的⽇期只以年-⽉-⽇的⽅式输出,可以⽤下⾯两种⽅法:1、⽤convert()转化函数:String sqlst = "select convert(varchar(10),bookDate,126) as convertBookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'" System.out.println(rs.getString("convertBookDate"));2、利⽤SimpleDateFormat类:先要输⼊两个java包:import java.util.Date;import java.text.SimpleDateFormat;然后:定义⽇期格式:SimpleDateFormat sdf = new SimpleDateFormat(yy-MM-dd);sql语句为:String sqlStr = "select bookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";输出:System.out.println(df.format(rs.getDate("bookDate")));3、java中获取当前⽇期和时间的⽅法1)如何取得年⽉⽇、⼩时分秒?2)如何取得从1970 年到现在的毫秒数?3)如何取得某个⽇期是当⽉的最后⼀天?4)如何格式化⽇期?1import java.sql.Date;2import java.text.SimpleDateFormat;3import java.util.Calendar;45public class Demo12 {67/**8 * @param args9*/10public static void main(String[] args) {11// TODO Auto-generated method stub12 Calendar c = Calendar.getInstance();13 System.out.println("年:" + c.get(Calendar.YEAR));14 System.out.println("⽉:" + (c.get(Calendar.MONTH) + 1));15 System.out.println("⽇:" + c.get(Calendar.DAY_OF_MONTH));16 System.out.println("24时制⼩时:" + c.get(Calendar.HOUR_OF_DAY));17 System.out.println("12时制:" + c.get(Calendar.HOUR));18 System.out.println("分:" + c.get(Calendar.MINUTE));19 System.out.println("秒:" + c.get(Calendar.SECOND));20 System.out.println("今天是⼀年中的第:" + c.get(Calendar.DAY_OF_YEAR) + "天");21//-------毫秒数2223long currentSec = System.currentTimeMillis();24 System.out.println("毫秒数为:" + currentSec);2526//------⽇期最后⼀天2728int maxDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);29 System.out.println("当前⽇期最后⼀天:" + maxDay);3031//-------格式化⽇期3233 String format = "yyyy年MM⽉dd⽇ HH:mm:ss";34 SimpleDateFormat SDF = new SimpleDateFormat(format);35 String timer = SDF.format(new Date(currentSec));36 System.out.println("格式化⽇期后:" + timer);3738 }3940 }⼆1import java.util.Date;2import java.util.Calendar;3import java.text.SimpleDateFormat;4public class TestDate{5public static void main(String[] args){6 Date now = new Date();7 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//可以⽅便地修改⽇期格式89 String hehe = dateFormat.format( now );10 System.out.println(hehe);11 Calendar c = Calendar.getInstance();//可以对每个时间域单独修改14int year = c.get(Calendar.YEAR);15int month = c.get(Calendar.MONTH);16int date = c.get(Calendar.DATE);17int hour = c.get(Calendar.HOUR_OF_DAY);18int minute = c.get(Calendar.MINUTE);19int second = c.get(Calendar.SECOND);20 System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);21 }22 }23有时候要把String类型的时间转换为Date类型,通过以下的⽅式,就可以将你刚得到的时间字符串转换为Date类型了。
java得到年月日小时分秒
获得年月日小时分秒java得到年月日小时分秒推荐 Calendar cal=Calendar.getInstance();cal.setTime(new Date());int year=cal.get(Calendar.YEAR);int month=cal.get(Calendar.MONTH)+1;int date=cal.get(Calendar.DATE);int hour=cal.get(Calendar.HOUR);int minute=cal.get(Calendar.MINUTE);int second=cal.get(Calendar.SECOND);int milliSecond=cal.get(LISECOND);SimpleDateFormat格式化日期import java.text.SimpleDateFormat;import java.util.Date;public class test {public static void main(String []aa){SimpleDateFormat dateformat1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");String a1=dateformat1.format(new Date());System.out.println("时间2:"+a1);System.out.println(new Date().getYear()+1900);SimpleDateFormat dateformat2=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E "); String a2=dateformat2.format(new Date());System.out.println("时间2:"+a2);}}执行结果:时间2:2006-12-21 14:40:59 星期四2006时间2:2006年12月21日 14时40分59秒星期四java.util.Calendar对于日期的处理非常的方便,如newDate.set(Calendar.MONTH, 12); //加12个月,newDate.set(Calendar.DATE, -1); //前一天import java.text.SimpleDateFormat;import java.util.Date;import java.util.Calendar;public class calendartest {/*** @param args*/public static void main(String[] args) {SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");System.out.println("今天 :"+dateformat.format(new Date()));Calendar c=Calendar.getInstance();c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);Date d1=new Date(c.getTimeInMillis());System.out.println("星期一:"+dateformat.format(d1));c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);Date d2=new Date(c.getTimeInMillis());System.out.println("星期日:"+dateformat.format(d2));}}执行结果:今天 :2006-12-21 16:39:03 星期四星期一:2006-12-18 16:39:03 星期一星期日:2006-12-17 16:39:03 星期日。
