java日期获取前一天
Java基础-时间函数Date的相关使用
Java基础-时间函数Date的相关使⽤ 在⽇常Java开发中,常常会使⽤到Date的相关操作,如:获取当前系统时间、获取当前时间戳、时间戳按指定格式转换成时间等。
以前⽤到的时候,⼤部分是去⽹上找,但事后⼜很快忘记。
现为⽅便⾃⼰今后查阅,也⽅便各位猿友学习探讨,在此将我们常⽤的时间实例、函数归纳罗列出来,供⼤家参考,如有不对,欢迎在评论区共同探讨。
1 获取系统当前时间,我们经常会⽤到,如:判断优惠券是否已经过期、更新某条数据的时间等。
(当然,这些也可以在sql中进⾏) ⽅法⼀: Date类对象是⽤来表⽰时间和⽇期的,这个类提供了⼀系列操作时间和⽇期的函数,获取系统当前时间就是我们最常⽤的。
如下:1public static void main(String[] args) {2 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");3 SimpleDateFormat dateForm24 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");4 Date date1 = new Date();5 System.out.println("系统当前时间是(未格式化):" + date1);6 System.out.println("系统当前时间是(已格式化):" + dateFormat.format(date1));7 System.out.println("系统当前时间是(格式-24):" + dateForm24.format(date1));8 }9控制台输出:10系统当前时间是(未格式化):Fri Dec 27 16:43:47 CST 201911系统当前时间是(已格式化):2019-12-27 04:43:4712系统当前时间是(格式-24):2019-12-27 16:43:47 从控制台输出,我们可以看到,同⼀个时间有三种表达样式。
如何利用java得到当前的时间和前一天的时间
如何利用java得到当前(dāngqián)的时间和前一天的时间有两种方法(fāngfǎ):方法一:用java.util.Date类来实现,并结合(jiéhé)java.text.DateFormat类来实现时间的格式化,看下面代码:import java.util.*;import java.text.*;//以下默认(mòrèn)时间日期显示方式都是汉语语言方式//一般语言就默认汉语就可以了,时间日期的格式默认为MEDIUM风格,比如:2008-6-16 20:54:53//以下显示的日期时间都是再Date类的基础上的来的,还可以利用Calendar类来实现见类TestDate2.javapublic class TestDate {public static void main(String[] args) {Date now = new Date();Calendar cal = Calendar.getInstance();DateFormat d1 = DateFormat.getDateInstance(); //默认语言(汉语)下的默认风格(MEDIUM风格,比如:2008-6-16 20:54:53)String str1 = d1.format(now);DateFormat d2 = DateFormat.getDateTimeInstance();String str2 = d2.format(now);DateFormat d3 = DateFormat.getTimeInstance();String str3 = d3.format(now);DateFormat d4 = DateFormat.getInstance(); //使用SHORT风格显示日期和时间String str4 = d4.format(now);DateFormat d5 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期(rìqī),周,时间(精确到秒)String str5 = d5.format(now);DateFormat d6 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期。
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获取当天,前天,明天,本周,本⽉,本年的开始⽇期时间和结束⽇期时间1package demoone;23import java.sql.Timestamp;4import java.text.ParseException;5import java.text.SimpleDateFormat;6import java.util.ArrayList;7import java.util.Calendar;8import java.util.Date;9import java.util.GregorianCalendar;10import java.util.List;1112public class DateUtils {13//获取当天的开始时间14public static java.util.Date getDayBegin() {15 Calendar cal = new GregorianCalendar();16 cal.set(Calendar.HOUR_OF_DAY, 0);17 cal.set(Calendar.MINUTE, 0);18 cal.set(Calendar.SECOND, 0);19 cal.set(LISECOND, 0);20return cal.getTime();21 }22//获取当天的结束时间23public static java.util.Date getDayEnd() {24 Calendar cal = new GregorianCalendar();25 cal.set(Calendar.HOUR_OF_DAY, 23);26 cal.set(Calendar.MINUTE, 59);27 cal.set(Calendar.SECOND, 59);28return cal.getTime();29 }30//获取昨天的开始时间31public static Date getBeginDayOfYesterday() {32 Calendar cal = new GregorianCalendar();33 cal.setTime(getDayBegin());34 cal.add(Calendar.DAY_OF_MONTH, -1);35return cal.getTime();36 }37//获取昨天的结束时间38public static Date getEndDayOfYesterDay() {39 Calendar cal = new GregorianCalendar();40 cal.setTime(getDayEnd());41 cal.add(Calendar.DAY_OF_MONTH, -1);42return cal.getTime();43 }44//获取明天的开始时间45public static Date getBeginDayOfTomorrow() {46 Calendar cal = new GregorianCalendar();47 cal.setTime(getDayBegin());48 cal.add(Calendar.DAY_OF_MONTH, 1);4950return cal.getTime();51 }52//获取明天的结束时间53public static Date getEndDayOfTomorrow() {54 Calendar cal = new GregorianCalendar();55 cal.setTime(getDayEnd());56 cal.add(Calendar.DAY_OF_MONTH, 1);57return cal.getTime();58 }59//获取本周的开始时间60public static Date getBeginDayOfWeek() {61 Date date = new Date();62if (date == null) {63return null;64 }65 Calendar cal = Calendar.getInstance();66 cal.setTime(date);67int dayofweek = cal.get(Calendar.DAY_OF_WEEK);68if (dayofweek == 1) {69 dayofweek += 7;70 }71 cal.add(Calendar.DATE, 2 - dayofweek);72return getDayStartTime(cal.getTime());73 }74//获取本周的结束时间75public static Date getEndDayOfWeek(){76 Calendar cal = Calendar.getInstance();77 cal.setTime(getBeginDayOfWeek());78 cal.add(Calendar.DAY_OF_WEEK, 6);79 Date weekEndSta = cal.getTime();80return getDayEndTime(weekEndSta);81 }82//获取本⽉的开始时间83public static Date getBeginDayOfMonth() {84 Calendar calendar = Calendar.getInstance();85 calendar.set(getNowYear(), getNowMonth() - 1, 1);86return getDayStartTime(calendar.getTime());87 }88//获取本⽉的结束时间89public static Date getEndDayOfMonth() {90 Calendar calendar = Calendar.getInstance();91 calendar.set(getNowYear(), getNowMonth() - 1, 1);92int day = calendar.getActualMaximum(5);93 calendar.set(getNowYear(), getNowMonth() - 1, day);94return getDayEndTime(calendar.getTime());95 }96//获取本年的开始时间97public static java.util.Date getBeginDayOfYear() {98 Calendar cal = Calendar.getInstance();99 cal.set(Calendar.YEAR, getNowYear());100// cal.set101 cal.set(Calendar.MONTH, Calendar.JANUARY);102 cal.set(Calendar.DATE, 1);103104return getDayStartTime(cal.getTime());105 }106//获取本年的结束时间107public static java.util.Date getEndDayOfYear() {108 Calendar cal = Calendar.getInstance();109 cal.set(Calendar.YEAR, getNowYear());110 cal.set(Calendar.MONTH, Calendar.DECEMBER);111 cal.set(Calendar.DATE, 31);112return getDayEndTime(cal.getTime());113 }114//获取某个⽇期的开始时间115public static Timestamp getDayStartTime(Date d) {116 Calendar calendar = Calendar.getInstance();117if(null != d) calendar.setTime(d);118 calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);119 calendar.set(LISECOND, 0);120return new Timestamp(calendar.getTimeInMillis());121 }122//获取某个⽇期的结束时间123public static Timestamp getDayEndTime(Date d) {124 Calendar calendar = Calendar.getInstance();125if(null != d) calendar.setTime(d);126 calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59); 127 calendar.set(LISECOND, 999);128return new Timestamp(calendar.getTimeInMillis());129 }130//获取今年是哪⼀年131public static Integer getNowYear() {132 Date date = new Date();133 GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();134 gc.setTime(date);135return Integer.valueOf(gc.get(1));136 }137//获取本⽉是哪⼀⽉138public static int getNowMonth() {139 Date date = new Date();140 GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();141 gc.setTime(date);142return gc.get(2) + 1;143 }144//两个⽇期相减得到的天数145public static int getDiffDays(Date beginDate, Date endDate) {146147if (beginDate == null || endDate == null) {148throw new IllegalArgumentException("getDiffDays param is null!");149 }150151long diff = (endDate.getTime() - beginDate.getTime())152 / (1000 * 60 * 60 * 24);153154int days = new Long(diff).intValue();155156return days;157 }158//两个⽇期相减得到的毫秒数159public static long dateDiff(Date beginDate, Date endDate) {160long date1ms = beginDate.getTime();161long date2ms = endDate.getTime();162return date2ms - date1ms;163 }164//获取两个⽇期中的最⼤⽇期165public static Date max(Date beginDate, Date endDate) {166if (beginDate == null) {167return endDate;168 }169if (endDate == null) {170return beginDate;171 }172if (beginDate.after(endDate)) {173return beginDate;174 }175return endDate;176 }177//获取两个⽇期中的最⼩⽇期178public static Date min(Date beginDate, Date endDate) {179if (beginDate == null) {180return endDate;181 }182if (endDate == null) {183return beginDate;184 }185if (beginDate.after(endDate)) {186return endDate;187 }188return beginDate;189 }190//返回某⽉该季度的第⼀个⽉191public static Date getFirstSeasonDate(Date date) {192final int[] SEASON = { 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4 };193 Calendar cal = Calendar.getInstance();194 cal.setTime(date);195int sean = SEASON[cal.get(Calendar.MONTH)];196 cal.set(Calendar.MONTH, sean * 3 - 3);197return cal.getTime();198 }199//返回某个⽇期下⼏天的⽇期200public static Date getNextDay(Date date, int i) {201 Calendar cal = new GregorianCalendar();202 cal.setTime(date);203 cal.set(Calendar.DATE, cal.get(Calendar.DATE) + i);204return cal.getTime();205 }206//返回某个⽇期前⼏天的⽇期207public static Date getFrontDay(Date date, int i) {208 Calendar cal = new GregorianCalendar();209 cal.setTime(date);210 cal.set(Calendar.DATE, cal.get(Calendar.DATE) - i);211return cal.getTime();212 }213//获取某年某⽉到某年某⽉按天的切⽚⽇期集合(间隔天数的⽇期集合)214public static List getTimeList(int beginYear, int beginMonth, int endYear, 215int endMonth, int k) {216 List list = new ArrayList();217if (beginYear == endYear) {218for (int j = beginMonth; j <= endMonth; j++) {219 list.add(getTimeList(beginYear, j, k));220221 }222 } else {223 {224for (int j = beginMonth; j < 12; j++) {225 list.add(getTimeList(beginYear, j, k));226 }227228for (int i = beginYear + 1; i < endYear; i++) {229for (int j = 0; j < 12; j++) {230 list.add(getTimeList(i, j, k));231 }232 }233for (int j = 0; j <= endMonth; j++) {234 list.add(getTimeList(endYear, j, k));235 }236 }237 }238return list;239 }240//获取某年某⽉按天切⽚⽇期集合(某个⽉间隔多少天的⽇期集合)241public static List getTimeList(int beginYear, int beginMonth, int k) {242 List list = new ArrayList();243 Calendar begincal = new GregorianCalendar(beginYear, beginMonth, 1); 244int max = begincal.getActualMaximum(Calendar.DATE);245for (int i = 1; i < max; i = i + k) {246 list.add(begincal.getTime());247 begincal.add(Calendar.DATE, k);248 }249 begincal = new GregorianCalendar(beginYear, beginMonth, max);250 list.add(begincal.getTime());251return list;252 }253 }1//获取某年某⽉的第⼀天⽇期2public static Date getStartMonthDate(int year, int month) {3 Calendar calendar = Calendar.getInstance();4 calendar.set(year, month - 1, 1);5return calendar.getTime();6 }78//获取某年某⽉的最后⼀天⽇期9public static Date getEndMonthDate(int year, int month) {10 Calendar calendar = Calendar.getInstance();11 calendar.set(year, month - 1, 1);12int day = calendar.getActualMaximum(5);13 calendar.set(year, month - 1, day);14return calendar.getTime();15 }DateUtils。
Java获取当天、当前月、当前年(今年)的开始和结束时间戳
Java获取当天、当前⽉、当前年(今年)的开始和结束时间戳最近在做统计相关的功能的时候涉及到了获取当天的开始和结束的时间戳、当⽉和当年的开始结束时间戳,特此记录,以作备忘。
相关代码package com.lingyejun.authenticator;import java.time.Instant;import java.time.LocalDateTime;import java.time.ZoneId;import java.util.Calendar;import java.util.TimeZone;public class CalendarAdjust {/*** 获取指定某⼀天的开始时间戳** @param timeStamp 毫秒级时间戳* @param timeZone 如 GMT+8:00* @return*/public static Long getDailyStartTime(Long timeStamp, String timeZone) {Calendar calendar = Calendar.getInstance();calendar.setTimeZone(TimeZone.getTimeZone(timeZone));calendar.setTimeInMillis(timeStamp);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(LISECOND, 0);return calendar.getTimeInMillis();}/*** 获取指定某⼀天的结束时间戳** @param timeStamp 毫秒级时间戳* @param timeZone 如 GMT+8:00* @return*/public static Long getDailyEndTime(Long timeStamp, String timeZone) {Calendar calendar = Calendar.getInstance();calendar.setTimeZone(TimeZone.getTimeZone(timeZone));calendar.setTimeInMillis(timeStamp);calendar.set(Calendar.HOUR_OF_DAY, 23);calendar.set(Calendar.MINUTE, 59);calendar.set(Calendar.SECOND, 59);calendar.set(LISECOND, 999);return calendar.getTimeInMillis();}/*** 获取当⽉开始时间戳** @param timeStamp 毫秒级时间戳* @param timeZone 如 GMT+8:00* @return*/public static Long getMonthStartTime(Long timeStamp, String timeZone) {Calendar calendar = Calendar.getInstance();// 获取当前⽇期calendar.setTimeZone(TimeZone.getTimeZone(timeZone));calendar.setTimeInMillis(timeStamp);calendar.add(Calendar.YEAR, 0);calendar.add(Calendar.MONTH, 0);calendar.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前⽇期既为本⽉第⼀天calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(LISECOND, 0);return calendar.getTimeInMillis();}/*** 获取当⽉的结束时间戳** @param timeStamp 毫秒级时间戳* @param timeZone 如 GMT+8:00* @return*/public static Long getMonthEndTime(Long timeStamp, String timeZone) {Calendar calendar = Calendar.getInstance();// 获取当前⽇期calendar.setTimeZone(TimeZone.getTimeZone(timeZone));calendar.setTimeInMillis(timeStamp);calendar.add(Calendar.YEAR, 0);calendar.add(Calendar.MONTH, 0);calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));// 获取当前⽉最后⼀天calendar.set(Calendar.HOUR_OF_DAY, 23);calendar.set(Calendar.MINUTE, 59);calendar.set(Calendar.SECOND, 59);calendar.set(LISECOND, 999);return calendar.getTimeInMillis();}/*** 获取当年的开始时间戳** @param timeStamp 毫秒级时间戳* @param timeZone 如 GMT+8:00* @return*/public static Long getYearStartTime(Long timeStamp, String timeZone) {Calendar calendar = Calendar.getInstance();// 获取当前⽇期calendar.setTimeZone(TimeZone.getTimeZone(timeZone));calendar.setTimeInMillis(timeStamp);calendar.add(Calendar.YEAR, 0);calendar.add(Calendar.DATE, 0);calendar.add(Calendar.MONTH, 0);calendar.set(Calendar.DAY_OF_YEAR, 1);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(LISECOND, 0);return calendar.getTimeInMillis();}/*** 获取当年的最后时间戳** @param timeStamp 毫秒级时间戳* @param timeZone 如 GMT+8:00* @return*/public static Long getYearEndTime(Long timeStamp, String timeZone) {Calendar calendar = Calendar.getInstance();// 获取当前⽇期calendar.setTimeZone(TimeZone.getTimeZone(timeZone));calendar.setTimeInMillis(timeStamp);int year = calendar.get(Calendar.YEAR);calendar.clear();calendar.set(Calendar.YEAR, year);calendar.set(Calendar.HOUR_OF_DAY, 23);calendar.set(Calendar.MINUTE, 59);calendar.set(Calendar.SECOND, 59);calendar.set(LISECOND, 999);calendar.roll(Calendar.DAY_OF_YEAR, -1);return calendar.getTimeInMillis();}/*** 时间戳转字符串** @param timestamp 毫秒级时间戳* @param zoneId 如 GMT+8或UTC+08:00* @return*/public static String timestampToStr(long timestamp, String zoneId) {ZoneId timezone = ZoneId.of(zoneId);LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), timezone);return localDateTime.toString();}public static void main(String[] args) {Long currentTime = System.currentTimeMillis();System.out.println("Current Time : " + currentTime + " = " + timestampToStr(currentTime, "GMT+8"));Long dailyStart = getDailyStartTime(currentTime, "GMT+8:00");Long dailyEnd = getDailyEndTime(currentTime, "GMT+8:00");Long monthStart = getMonthStartTime(currentTime, "GMT+8:00");Long monthEnd = getMonthEndTime(currentTime, "GMT+8:00");Long yearStart = getYearStartTime(currentTime, "GMT+8:00");Long yearEnd = getYearEndTime(currentTime, "GMT+8:00");System.out.println("Daily Start : " + dailyStart + " = " + timestampToStr(dailyStart, "GMT+8") + " Daily End : " + dailyEnd + " = " + timestampToStr(dailyEnd, "GMT+8"));System.out.println("Month Start : " + monthStart + " = " + timestampToStr(monthStart, "GMT+8") + " Month End : " + monthEnd + " = " + timestampToStr(monthEnd, "GMT+8")); System.out.println("Year Start : " + yearStart + " = " + timestampToStr(yearStart, "GMT+8") + " Year End : " + yearEnd + " = " + timestampToStr(yearEnd, "GMT+8"));}}效果。
date命令获取昨天、明天或多天前后的日期
date命令获取昨天、明天或多天前后的日期在实际操作中,一些脚本中会调用明天,或者昨天,或更多天前的日期,本文将叙述讲述用date命令实现时间的显示。
在Linux系统中用man date -d 查询的参数说的比较模糊,以下举例进一步说明:# man date-d, --date=STRINGdisplay time described by STRING, not ‘now’查看明天日期# date -d next-day +”%Y%m%d”# date -d tomorrow +”%Y%m%d”查看昨天日期# date -d last-day +”%Y%m%d”# date -d yesterday +”%Y%m%d”查看上个月日期# date -d last-month +”%Y%m%查看下个月日期date -d next-month +”%Y%m%查看明年日期# date -d next-year +”%Y”获取昨天或多天前的日期DATE=$(date +%Y%m%d --date ’2 days ago’)date命令能用来显示或设定系统的日期和时间,在显示方面,使用者能设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:时间方面∙%:印出∙% %n:下一行∙%t:跳格∙%H:小时(00..23)∙%I:小时(01..12)∙%k:小时(0..23)∙%l:小时(1..12)∙%M:分钟(00..59)∙%p:显示本地AM 或PM∙%r:直接显示时间(12 小时制,格式为hh:mm:ss [AP]M)∙%s:从1970 年1 月1 日00:00:00 UTC 到目前为止的秒数%S:秒(00..61)∙%T:直接显示时间(24 小时制)∙%X:相当于%H:%M:%S∙%Z:显示时区日期方面∙%a:星期几(Sun..Sat)∙%A:星期几(Sunday..Saturday)∙%b:月份(Jan..Dec)∙%B:月份(January..December)∙%c:直接显示日期和时间∙%d:日(01..31)∙%D:直接显示日期(mm/dd/yy)∙%h:同%b∙%j:一年中的第几天(001..366)∙%m:月份(01..12)∙%U:一年中的第几周(00..53)(以Sunday 为一周的第一天的情形)∙%w:一周中的第几天(0..6)∙%W:一年中的第几周(00..53)(以Monday 为一周的第一天的情形)∙%x:直接显示日期(mm/dd/yy)∙%y:年份的最后两位数字(00.99)∙%Y:完整年份(0000..9999)若是不以加号作为开头,则表示要设定时间,而时间格式为:MMDDhhmm[[CC]YY][.ss] 其中:∙MM 为月份∙DD 为日∙hh 为小时∙mm 为分钟∙CC 为年份前两位数字∙YY 为年份后两位数字∙ss 为秒数选项:∙-d datestr:显示datestr 中所设定的时间(非系统时间)∙--help:显示辅助讯息∙-s datestr:将系统时间设为datestr 中所设定的时间∙-u:显示目前的格林威治时间∙--version:显示版本编号例子:∙显示时间后跳行,再显示目前日期:date +”%T%n%D”∙显示月份和日数:date +”%B %d”∙显示日期和设定时间(12:34:56):date --date 12:34:56∙设置系统当前时间(12:34:56):date --s 12:34:56注意:当你不希望出现无意义的0 时(比如说1999/03/07),则能在标记中插入- 符号,比如说date +%-H:%-M:%-S 会把时分秒中无意义的0 给去掉,像是原本的08:09:04 会变为8:9:4。
Java获取当前日期和时间
String sDateSuffix = dateformat.format(date);
System.out.println("sDateSuffix:"+sDateSuffix);
System.out.println("用DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL)格式化时间后为:" + str5);
System.out.println("用DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG)格式化时间后为:" + str6);
public static void main(String[] args) {
Date now = new Date();
DateFormat d1 = DateFormat.getDateInstance(); //默认语言(汉语)下的默认风格(MEDIUM风格,比如:2008-6-16 20:54:53)
System.out.println("用DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT)格式化时间后为:" + str7);
System.out
}
}
运行结果:
用Date方式显示时间: Mon Jun 16 20:54:53 CST 2008
JAVA处理期时间常用方法
JAVA处理日期时间常用方法:java .util .Calendar Cale ndar类是一个抽象类,它为特定瞬间与一组诸如YEAR 、MONTH 、DAY_OF_MONTH 、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间1970 年1 月1 日的00:00:00.000,格里高利历)的偏移量。
例:Calendar cal =Calendar.getInstance(。
) //使用默认时区和语言环境获得一个日历。
cal.add(Calendar.DAY_OF_MONTH, -1)。
//取当前日期的前一天.cal.add(Calendar.DAY_OF_MONTH, +1)。
//取当前日期的后一天.//通过格式化输出日期java.text.SimpleDateFormat format = newjava.text.SimpleDateFormat("yyyy-MM-dd") 。
System.out.println("Todayis:"+format.format(Calendar.getInstance().getTime()))。
System.out.println("yesterdayis:"+format.format(cal.getTime()))。
得到2007-12-25日期: Calendar calendar = new GregorianCalendar(2007, 11, 25,0,0,0)。
Date date = calendar.getTime(。
) System.out.println("2007 Christmas is:"+format.format(date))。
//java月份是从0-11,月份设置时要减1.//Gregoria nCale nda构造方法参数依次为:年,月-1 ,日,时,分,秒.取日期的部分: int year =calendar.get(Calendar.YEAR)。
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获取时间、获取日期1. java获得毫秒:System.currentTimeMillis()2. java获得纳秒:System.nanoTime() (用于获取很精确的时间,推荐!)3. java获得当前日期:4. GregorianCalendar date_1=(GregorianCalendar)Calendar.getInstance();5. java.sql.Date date_2= new java.sql.Date(date_1.getTime().getTime());6.7.8. ---------------------------------------------------------------------------------------9.10.import java.text.ParseException;11.import java.text.SimpleDateFormat;12.import java.util.Calendar;13.import java.util.Date;14.15.public class DateTest {16.public static void main(String[] args) throws ParseException {17. Calendar now = Calendar.getInstance();18. System.out.println("年: " + now.get(Calendar.YEAR));19. System.out.println("月: " + (now.get(Calendar.MONTH) + 1));20. System.out.println("日: " + now.get(Calendar.DAY_OF_MONTH));21. System.out.println("时: " + now.get(Calendar.HOUR_OF_DAY));22. System.out.println("分: " + now.get(Calendar.MINUTE));23. System.out.println("秒: " + now.get(Calendar.SECOND));24. System.out.println("当前时间毫秒数:" + now.getTimeInMillis());25. System.out.println(now.getTime());26.27. Date d = new Date();28. System.out.println(d);29. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");30.//SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");31. String dateNowStr = sdf.format(d);32. System.out.println("格式化后的日期:" + dateNowStr);33.34. String str = "2012-08-20 17:52:07"; //要跟上面定义的格式一样35. Date today = sdf.parse(str);36. System.out.println("字符串转成日期:" + today);37. }38.}39.输出结果:40.41.年: 201242.月: 843.日: 2044.时: 1745.分: 5346.秒: 4647.当前时间毫秒数:134545642631248.Mon Aug 2017:53:46 CST 201249.Mon Aug 2017:53:46 CST 201250.格式化后的日期:2012-08-2017:53:4651.字符串转成日期:Mon Aug 2017:52:07 CST 201252.53.---------------------------------------------------------------------------------------54.55.import java.text.DateFormat;56.import java.text.ParsePosition;57.import java.text.SimpleDateFormat;58.import java.util.Calendar;59.import java.util.Date;60.import java.util.GregorianCalendar;61.62.public class TimeTest {63.//用来全局控制上一周,本周,下一周的周数变化64.private int weeks = 0;65.private int MaxDate;//一月最大天数66.private int MaxYear;//一年最大天数67.public static void main(String[] args) {68. TimeTest tt = new TimeTest();69. System.out.println("获取当天日期:"+tt.getNowTime("yyyy-MM-dd"));70. System.out.println("获取本周一日期:"+tt.getMondayOFWeek());71. System.out.println("获取本周日的日期:"+tt.getCurrentWeekday());72. System.out.println("获取上周一日期:"+tt.getPreviousWeekday());73. System.out.println("获取上周日日期:"+tt.getPreviousWeekSunday());74. System.out.println("获取下周一日期:"+tt.getNextMonday());75. System.out.println("获取下周日日期:"+tt.getNextSunday());76. System.out.println("获得相应周的周六的日期:"+tt.getNowTime("yyyy-MM-dd"));77. System.out.println("获取本月第一天日期:"+tt.getFirstDayOfMonth());78. System.out.println("获取本月最后一天日期:"+tt.getDefaultDay());79. System.out.println("获取上月第一天日期:"+tt.getPreviousMonthFirst());80. System.out.println("获取上月最后一天的日期:"+tt.getPreviousMonthEnd());81. System.out.println("获取下月第一天日期:"+tt.getNextMonthFirst());82. System.out.println("获取下月最后一天日期:"+tt.getNextMonthEnd());83. System.out.println("获取本年有多少天:"+tt.getMaxYear());84. System.out.println("获取本年的第一天日期:"+tt.getCurrentYearFirst());85. System.out.println("获取本年最后一天日期:"+tt.getCurrentYearEnd());86. System.out.println("获取去年的第一天日期:"+tt.getPreviousYearFirst());87. System.out.println("获取去年的最后一天日期:"+tt.getPreviousYearEnd());88. System.out.println("获取明年第一天日期:"+tt.getNextYearFirst());89. System.out.println("获取明年最后一天日期:"+tt.getNextYearEnd());90. System.out.println("获取本季度第一天到最后一天:"+tt.getThisSeasonTime(11));91. System.out.println("获取两个日期之间间隔天数2011-12-1~2012-7.29:"+TimeTest.getTwoDay("2012-7-29","2011-12-1"));92. }93.94.95./**96. * 得到二个日期间的间隔天数97. */98.public static String getTwoDay(String sj1, String sj2) {99. SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");100.long day = 0;101.try {102. java.util.Date date = myFormatter.parse(sj1);103. java.util.Date mydate = myFormatter.parse(sj2);104. day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000 );105. } catch (Exception e) {106.return"";107. }108.return day + "";109. }110.111.112./**113. * 根据一个日期,返回是星期几的字符串114. */115.public static String getWeek(String sdate) {116.// 再转换为时间117. Date date = TimeTest.strToDate(sdate);118. Calendar c = Calendar.getInstance();119. c.setTime(date);120.// int hour=c.get(Calendar.DAY_OF_WEEK);121.// hour中存的就是星期几了,其范围 1~7122.// 1=星期日 7=星期六,其他类推123.return new SimpleDateFormat("EEEE").format(c.getTime());124. }125.126./**127. * 将短时间格式字符串转换为时间 yyyy-MM-dd128. */129.public static Date strToDate(String strDate) {130. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");131. ParsePosition pos = new ParsePosition(0);132. Date strtodate = formatter.parse(strDate, pos);133.return strtodate;134. }135.136./**137. * 两个时间之间的天数138. */139.public static long getDays(String date1, String date2) {140.if (date1 == null || date1.equals(""))141.return0;142.if (date2 == null || date2.equals(""))143.return0;144.// 转换为标准时间145. SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");146. java.util.Date date = null;147. java.util.Date mydate = null;148.try {149. date = myFormatter.parse(date1);150. mydate = myFormatter.parse(date2);151. } catch (Exception e) {152. }153.long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1 000);154.return day;155. }156.157.158.159.160.// 计算当月最后一天,返回字符串161.public String getDefaultDay(){162. String str = "";163. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 164.165. Calendar lastDate = Calendar.getInstance();166. lastDate.set(Calendar.DATE,1);//设为当前月的1号167. lastDate.add(Calendar.MONTH,1);//加一个月,变为下月的1号168. lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天169.170. str=sdf.format(lastDate.getTime());171.return str;172. }173.174.// 上月第一天175.public String getPreviousMonthFirst(){176. String str = "";177. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 178.179. Calendar lastDate = Calendar.getInstance();180. lastDate.set(Calendar.DATE,1);//设为当前月的1号181. lastDate.add(Calendar.MONTH,-1);//减一个月,变为下月的1号182.//lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天183.184. str=sdf.format(lastDate.getTime());185.return str;186. }187.188.//获取当月第一天189.public String getFirstDayOfMonth(){190. String str = "";191. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 192.193. Calendar lastDate = Calendar.getInstance();194. lastDate.set(Calendar.DATE,1);//设为当前月的1号195. str=sdf.format(lastDate.getTime());196.return str;197. }198.199.// 获得本周星期日的日期200.public String getCurrentWeekday() {201. weeks = 0;202.int mondayPlus = this.getMondayPlus();203. GregorianCalendar currentDate = new GregorianCalendar();204. currentDate.add(GregorianCalendar.DATE, mondayPlus+6);205. Date monday = currentDate.getTime();206.207. DateFormat df = DateFormat.getDateInstance();208. String preMonday = df.format(monday);209.return preMonday;210. }211.212.213.//获取当天时间214.public String getNowTime(String dateformat){215. Date now = new Date();216. SimpleDateFormat dateFormat = new SimpleDateFormat(dateform at);//可以方便地修改日期格式217. String hehe = dateFormat.format(now);218.return hehe;219. }220.221.// 获得当前日期与本周日相差的天数222.private int getMondayPlus() {223. Calendar cd = Calendar.getInstance();224.// 获得今天是一周的第几天,星期日是第一天,星期二是第二天......225.int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK)-1; //因为按中国礼拜一作为第一天所以这里减1226.if (dayOfWeek == 1) {227.return0;228. } else {229.return1 - dayOfWeek;230. }231. }232.233.//获得本周一的日期234.public String getMondayOFWeek(){235. weeks = 0;236.int mondayPlus = this.getMondayPlus();237. GregorianCalendar currentDate = new GregorianCalendar();238. currentDate.add(GregorianCalendar.DATE, mondayPlus);239. Date monday = currentDate.getTime();240.241. DateFormat df = DateFormat.getDateInstance();242. String preMonday = df.format(monday);243.return preMonday;244. }245.246.//获得相应周的周六的日期247.public String getSaturday() {248.int mondayPlus = this.getMondayPlus();249. GregorianCalendar currentDate = new GregorianCalendar();250. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks + 6) ;251. Date monday = currentDate.getTime();252. DateFormat df = DateFormat.getDateInstance();253. String preMonday = df.format(monday);254.return preMonday;255. }256.257.// 获得上周星期日的日期258.public String getPreviousWeekSunday() {259. weeks=0;260. weeks--;261.int mondayPlus = this.getMondayPlus();262. GregorianCalendar currentDate = new GregorianCalendar();263. currentDate.add(GregorianCalendar.DATE, mondayPlus+weeks); 264. Date monday = currentDate.getTime();265. DateFormat df = DateFormat.getDateInstance();266. String preMonday = df.format(monday);267.return preMonday;268. }269.270.// 获得上周星期一的日期271.public String getPreviousWeekday() {272. weeks--;273.int mondayPlus = this.getMondayPlus();274. GregorianCalendar currentDate = new GregorianCalendar();275. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);276. Date monday = currentDate.getTime();277. DateFormat df = DateFormat.getDateInstance();278. String preMonday = df.format(monday);279.return preMonday;280. }281.282.// 获得下周星期一的日期283.public String getNextMonday() {284. weeks++;285.int mondayPlus = this.getMondayPlus();286. GregorianCalendar currentDate = new GregorianCalendar();287. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7); 288. Date monday = currentDate.getTime();289. DateFormat df = DateFormat.getDateInstance();290. String preMonday = df.format(monday);291.return preMonday;292. }293.294.// 获得下周星期日的日期295.public String getNextSunday() {296.297.int mondayPlus = this.getMondayPlus();298. GregorianCalendar currentDate = new GregorianCalendar();299. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7+6); 300. Date monday = currentDate.getTime();301. DateFormat df = DateFormat.getDateInstance();302. String preMonday = df.format(monday);303.return preMonday;304. }305.306.307.308.private int getMonthPlus(){309. Calendar cd = Calendar.getInstance();310.int monthOfNumber = cd.get(Calendar.DAY_OF_MONTH);311. cd.set(Calendar.DATE, 1);//把日期设置为当月第一天312. cd.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天313. MaxDate=cd.get(Calendar.DATE);314.if(monthOfNumber == 1){315.return -MaxDate;316. }else{317.return1-monthOfNumber;318. }319. }320.321.//获得上月最后一天的日期322.public String getPreviousMonthEnd(){323. String str = "";324. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");325.326. Calendar lastDate = Calendar.getInstance();327. lastDate.add(Calendar.MONTH,-1);//减一个月328. lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天329. lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天330. str=sdf.format(lastDate.getTime());331.return str;332. }333.334.//获得下个月第一天的日期335.public String getNextMonthFirst(){336. String str = "";337. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 338.339. Calendar lastDate = Calendar.getInstance();340. lastDate.add(Calendar.MONTH,1);//减一个月341. lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天342. str=sdf.format(lastDate.getTime());343.return str;344. }345.346.//获得下个月最后一天的日期347.public String getNextMonthEnd(){348. String str = "";349. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 350.351. Calendar lastDate = Calendar.getInstance();352. lastDate.add(Calendar.MONTH,1);//加一个月353. lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天354. lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天355. str=sdf.format(lastDate.getTime());356.return str;357. }358.359.//获得明年最后一天的日期360.public String getNextYearEnd(){361. String str = "";362. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 363.364. Calendar lastDate = Calendar.getInstance();365. lastDate.add(Calendar.YEAR,1);//加一个年366. lastDate.set(Calendar.DAY_OF_YEAR, 1);367. lastDate.roll(Calendar.DAY_OF_YEAR, -1);368. str=sdf.format(lastDate.getTime());369.return str;370. }371.372.//获得明年第一天的日期373.public String getNextYearFirst(){374. String str = "";375. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 376.377. Calendar lastDate = Calendar.getInstance();378. lastDate.add(Calendar.YEAR,1);//加一个年379. lastDate.set(Calendar.DAY_OF_YEAR, 1);380. str=sdf.format(lastDate.getTime());381.return str;382.383. }384.385.//获得本年有多少天386.private int getMaxYear(){387. Calendar cd = Calendar.getInstance();388. cd.set(Calendar.DAY_OF_YEAR,1);//把日期设为当年第一天389. cd.roll(Calendar.DAY_OF_YEAR,-1);//把日期回滚一天。
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⽇期时间处理常⽤⽅法虽然是⽼⽣常谈,但整理出来还是有点⽤。
1.由字符串时间得到Date类型时间// 由字符串时间得到Date类型时间public static Date getDateFrom(String strDate){try{SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date date = sdf.parse(strDate);return date;}catch(Exception ex){return null;}}2.由Date类型时间得到字符串时间// 由Date类型时间得到字符串时间public static String getDateStrFrom(Date date){try{Format formatter = new SimpleDateFormat("yyyy-MM-dd");return formatter.format(date);}catch(Exception ex){return null;}}3.得到⼏天前的时间/*** 得到⼏天前的时间** @param d* @param day* @return*/public static String getDateBefore(Date d, int day) {Calendar now = Calendar.getInstance();now.setTime(d);now.set(Calendar.DATE, now.get(Calendar.DATE) - day);Format formatter = new SimpleDateFormat("yyyy-MM-dd");return formatter.format(now.getTime());}4.使⽤Date类型的before和after函数进⾏⽇期的⽐较for(DateRangeHour drh:lsTen){for(Object obj:ls){DateHour d=(DateHour)obj;if(d.getDate().before(drh.getEndDate()) && d.getDate().after(drh.getStartDate())){drh.hours+=d.getHours();}}}。
java时间计算,获取某月第一天和最后一天
java时间计算,获取某⽉第⼀天和最后⼀天//获取前⽉的第⼀天SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");//获取当前⽉第⼀天:Calendar c = Calendar.getInstance();String first = null;//第⼀天String last = null;//第⼆天//判断获取的参数如果为-1if(month.equals("-1")){c.add(Calendar.MONTH, -1);c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前⽇期既为本⽉第⼀天first = sdf.format(c.getTime());//获取上⽉的最后⼀天Calendar calendar = Calendar.getInstance();calendar.set(Calendar.DAY_OF_MONTH, 1);calendar.add(Calendar.DATE, -1);last = sdf.format(calendar.getTime());}else{c.add(Calendar.MONTH, 0);c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前⽇期既为本⽉第⼀天first = sdf.format(c.getTime());//获取当前⽉最后⼀天Calendar ca = Calendar.getInstance();ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));last = sdf.format(ca.getTime());}//循环时间段Date startDate = sdf.parse(first);Date endDate = sdf.parse(last);Calendar start = Calendar.getInstance();start.setTime(startDate);Long statTime = start.getTimeInMillis();Calendar end = Calendar.getInstance();end.setTime(endDate);Long endTime = end.getTimeInMillis();Long oneDay = 1000 * 60 * 60 * 24l;Long time = statTime;List timeList=new ArrayList();while (time <= endTime) {Date d = new Date(time);DateFormat df = new SimpleDateFormat("yyyy/MM/dd");time += oneDay;timeList.add(df.format(d));}//根据渠道ID查询当前代理公司下有多少交易成功的单String lastDate = null;if(month.equals("-1")){//获取这个时间段下⼀天Calendar calendar = Calendar.getInstance();calendar.set(Calendar.DAY_OF_MONTH, 1);calendar.add(Calendar.DATE, 0);lastDate = sdf.format(calendar.getTime());}else{Calendar calendar = Calendar.getInstance();calendar.set(Calendar.DAY_OF_MONTH, 1);calendar.add(Calendar.MONTH, 1);lastDate = sdf.format(calendar.getTime());}这是获取时间,然后这个时间进⾏相加⽐如updateDate = "2016-11-9"//得到保单状态最后修改的时间Date updateDate = tranCar.getDtUpdateDate();//计算时间,+3天Calendar calendar = Calendar.getInstance();calendar.setTime(updateDate);calendar.add(calendar.DATE,3);//得出的结果updateDate = "2016-11-12"//获取上个⽉25号的时间private String setDayLastMonth(SimpleDateFormat format) {Calendar month = Calendar.getInstance();month.add(Calendar.MONTH,-1);month.set(Calendar.DATE,25);String oneDayLastMonth = format.format(month.getTime());return oneDayLastMonth;}//获取当⽉的时间,这⾥时间不能超过当⽉25号private String setDayBefore(SimpleDateFormat format) {Calendar cal = Calendar.getInstance();//获取⼀个⽇历cal.add(Calendar.DAY_OF_MONTH, -1);//取当前⽇期的前⼀天.//当前时间String today = format.format(Calendar.getInstance().getTime());String theDayBefore = format.format(cal.getTime());//⽐较时间⼤⼩Date theDayBeforeDate = cal.getTime();//当前时间的前⼀天⽇期格式 Date todayDate = Calendar.getInstance().getTime();//当前时间⽇期格式if(theDayBeforeDate.getTime() > todayDate.getTime()){//默认⽇期只能为本⽉的24⽇cal.set(Calendar.DATE,24);theDayBefore = format.format(cal.getTime());}return theDayBefore;}。
JAVA使用LocalDate获取当前日期所在季度的开始日期和结束日期
resDate = LocalDate.of(today.getYear(), firstMonthOfQuarter, 1); } else {
resDate = LocalDate.of(today.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(today.isLeapYear())); } return resDate; }
LocalDate today=LocalDate.now(); Locaቤተ መጻሕፍቲ ባይዱDate resDate = LocalDate.now(); if (today == null) {
today = resDate; } Month month = today.getMonth(); Month firstMonthOfQuarter = month.firstMonthOfQuarter(); Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2); if (isFirst) {
有任何问题可以在评论区评论也可以私信我我看到的话会进行回复欢迎大家指教蓝奏云官网有些地址失效了需要把请求地址lanzous改成lanzoux才可以
JAVA使用 LocalDate获取当前日期所在季度的开始日期和结束日 期
需要使用jdk1.8及以上
/** * 获取当前日期所在季度的开始日期和结束日期 * 季度一年四季, 第一季度:1月-3月, 第二季度:4月-6月, 第三季度:7月-9月, 第四季度:10月-12月 * @param isFirst true表示查询本季度开始日期 false表示查询本季度结束日期 * @return */ public static LocalDate getStartOrEndDayOfQuarter(Boolean isFirst){
java获取指定开始时间与结束时间之间的所有日期
public static long get_D_Plaus_1(Calendar c) { c.set(Calendar.DAY_OF_MONTH, c.get(Calendar.DAY_OF_MONTH) + 1); return c.getTimeInMillis(); } }
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); cal.setTime(sdf.parse(beginDate));
for (long d = cal.getTimeInMillis(); d <= sdf.parse(endDate).getTime(); d = get_D_Plaus_1(cal)) { System.out.println(sdf.format(d)); }
这篇文章主要介绍了java实现的对称加密算法3des定义与用法结合实例形式简单分析了java3des加密算法的相关定义与使用技巧需要的朋友可以参考下
java获 取 指 定 开 始 时 间 与 结 束 时 间 之 间 的 所 有 日 期
本文实为大家分享了java获取指定开始时间与结束时间之间的所有日期的具体代码,供大家参考,具体内容如下
import java.text.SimpleDateFormat; import java.util.Calendar;
public class TimerTest {
public static void main(String[] args) throws Exception { String beginDate = "2016-07-16";//开始时间 String endDate = "2016-07-25";//结束时间
java获得指定日期的前一天,后一天的代码
java获 得 指 定 日 期 的 前 一 天 , 后 一 天 的 代 码
复制代码 代码如下:
/** * 获得指定日期的前一天 * @param specifiedDay * @return * @throws Exception */ public static String getSpecifiedDayBefore(String specifiedDay){ //SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); Date date=null; try { date = new SimpleDateFormat("yy-பைடு நூலகம்M-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; }
String dayBefore=new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()); return dayBefore; } /** * 获得指定日期的后一天 * @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);
JavaLocalDateTime,DateTimeFomatter----JDK8新时间。。。
JavaLocalDateTime,DateTimeFomatter----JDK8新时间。
JDK8中增加了⼀系列时间的类,(据说)是为了⼲掉过去的Date,Calendar类的,过去的Date类(据说)有着线程不安全等诸多弊端,⾄于我的个⼈感受就是⽤起来实在是很⿇烦,我⼀般封装成⼏个常⽤的⽅法以后每次就调⽅法,再也不想看⾥⾯是怎么实现的了.⽽发现了LocalDateTime这种新类以后,经过我的简单的试⽤,觉得完全可以取代掉之前使⽤时间的⼀切⽅法.⾮常好⽤,太好⽤了.下⾯是简单的使⽤教程:1,按照⾃由格式获取当前时间public static String getTodayByFormat(String timeFormat){return LocalDateTime.now().format(DateTimeFormatter.ofPattern(timeFormat));}简直优雅,甚⾄我都不想封装成⽅法了,想⽤随时写,就是这么容易.2,获取当前年/⽉/⽇⼀张图说明,想怎么取,想怎么拼,都随便3,获取前⼀天从前我的笨⽅法是:public static String getYesterdayByFormat(String timeFormat){//获取当前⽇期Date date = new Date();SimpleDateFormat sf = new SimpleDateFormat(timeFormat);//通过秒获取下⼀天⽇期long time = (date.getTime() / 1000) - 60 * 60 * 24;//秒date.setTime(time * 1000);//毫秒String yesterday = sf.format(date).toString();return yesterday;}如今有了新⽅法:public static String getYesterdayByFormat(String timeFormat){return LocalDateTime.now().plusDays(1).format(DateTimeFormatter.ofPattern(timeFormat));}同理,我都不想为获取X天后/X⼩时后单独写⽅法了,就在下⾯(以增加为例):返回值是LocalDateTime,也就意味着可以⼀直链式点下去,想要多少天以后的数据尽管开⼝,⼀句写不完算我输.4,获取已经度过的毫秒/秒为啥⼀个是to⼀个是get我也不是很明⽩其他更多的我还没⽤,感觉⽤不到了,有需要再去查就是了.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/**
* 判断当前日期是星期几<br>
* <br>
* @param pTime 修要判断的时间<br>
* @return dayForWeek 判断结果<br>
* @Exception 发生异常<br>
*/
c.setTime(format.parse(pTime));
int dayForWeek = 0;
if(c.get(Calendar.DAY_OF_WEEK) == 1){
dayForWeek = 7;
}else{
dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;
calendar.add(Calendar.DATE, -1); //得到前一天
calendar.add(Calendar.MONTH, -1); //得到前一个月
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH)+1;
java日期获取前一天和后一天2011-05-30 17:11import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
*
* @param specifiedDay
* @return
*/
public static String getSpecifiedDayAfter(String specifiedDay) {
Calendar c = Calendar.getInstance();
Calendar c = Calendar.getInstance();
Date date = null;
try {
date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);
public static int dayForWeek(String pTime) throws Exception {
format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day + 1);
String dayAfter = new SimpleDateFormat("yyyy-MM-dd")
String dayBefore = new SimpleDateFormat("yyyy-MM-dd").format(c
.getTime());
return d日期的后一天
Date date = null;
try {
date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);
} catch (ParseException e) {
String specifiedDay = sdf.format(date);
System.out.println(getSpecifiedDayBefore(specifiedDay));
System.out.println(getSpecifiedDayAfter(specifiedDay));
}
return dayForWeek;
}
.format(c.getTime());
return dayAfter;
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day - 1);
}
/**
* 获得指定日期的前一天
*
* @param specifiedDay
* @return
* @throws Exception
*/
public static String getSpecifiedDayBefore(String specifiedDay) {
Java获取当前日期的前一个月,前一天的时间 JavaCC++C# .
Calendar calendar = Calendar.getInstance();