java获取指定时间
1、上代码
1 package com.hynn.gajq.service.user; 2 3 import java.sql.Timestamp; 4 import java.text.ParseException; 5 import java.text.SimpleDateFormat; 6 import java.util.Calendar; 7 import java.util.Date; 8 import java.util.TimeZone; 9 10 import org.apache.commons.lang3.time.DateUtils; 11 12 public class test { 13 14 public static void main(String[] args) { 15 // TODO Auto-generated method stub 16 Long time = System.currentTimeMillis(); // 当前时间的时间戳 17 long zero = time / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset();// 今天零点零分零秒的毫秒数 18 long twelve = zero + 24 * 60 * 60 * 1000 - 1;// 今天23点59分59秒的毫秒数 19 System.out.println("今天零点零分零秒:" + new Timestamp(zero));// 今天零点零分零秒 20 System.out.println("今天23点59分59秒:" + new Timestamp(twelve));// 今天23点59分59秒 21 System.out.println("======================================"); 22 } 23 24 /** 25 * 获取上周一00:00:00 26 * 27 * @return 28 * @throws ParseException 29 */ 30 public static long getMonday() throws ParseException { 31 Date date = new Date(); 32 Date a = DateUtils.addDays(date, -1); 33 Calendar cal = Calendar.getInstance(); 34 cal.setTime(a); 35 cal.add(Calendar.WEEK_OF_YEAR, -1);// 一周 36 cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 37 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 38 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 39 String dateStr = sdf.format(cal.getTime());// 40 Date parse = sdf2.parse(dateStr + " 00:00:00"); 41 System.out.println(parse.getTime());// 上周一零点毫秒数 42 return parse.getTime(); 43 } 44 45 /** 46 * 本月或上月第一天00:00:00 flag=1--本月 flag=2--上月 getFirstDay() 47 * 48 * @param flag 49 * @return 50 */ 51 public static String getFirstDay(Integer flag) { 52 Calendar c = Calendar.getInstance(); 53 if (flag == 1) { 54 c.add(Calendar.MONTH, 0); // 获取当前月第一天 55 } else if (flag == 2) { 56 c.add(Calendar.MONTH, -1); // 获取上月第一天 57 } 58 c.set(Calendar.DAY_OF_MONTH, 1); // 设置为1号,当前日期既为本月第一天 59 c.set(Calendar.HOUR_OF_DAY, 0); // 将小时至0 60 c.set(Calendar.MINUTE, 0); // 将分钟至0 61 c.set(Calendar.SECOND, 0); // 将秒至0 62 c.set(Calendar.MILLISECOND, 0); // 将毫秒至0 63 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 64 return sdf.format(c.getTime()); 65 } 66 67 /** 68 * 本月或上月最后一天23:59:59 flag=1--本月 flag=2--上月 getLastDay() 69 * 70 * @param flag 71 * @return 72 */ 73 public static String getLastDay(Integer flag) { 74 Calendar ca = Calendar.getInstance(); 75 if (flag == 1) { 76 ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); // 获取当前月最后一天 77 } else if (flag == 2) { 78 ca.set(Calendar.DAY_OF_MONTH, 0); // 获取上月最后一天 79 } 80 ca.set(Calendar.HOUR_OF_DAY, 23); // 将小时至23 81 ca.set(Calendar.MINUTE, 59); // 将分钟至59 82 ca.set(Calendar.SECOND, 59); // 将秒至59 83 ca.set(Calendar.MILLISECOND, 59); // 将毫秒至59 84 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 85 return sdf.format(ca.getTime()); 86 } 87 88 /** 89 * 时间戳转换日期 90 * 91 * @param stamp 92 * @return 93 */ 94 public String stampToTime(String stamp) { 95 String sd = ""; 96 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 97 sd = sdf.format(new Date(Long.parseLong(stamp))); // 时间戳转换日期 98 return sd; 99 } 100 101 /** 102 * 日期转换为时间戳 103 * 104 * @param timers 105 * @return 106 */ 107 public long timeToStamp(String timers) { 108 Date d = new Date(); 109 long timeStemp = 0; 110 try { 111 SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 112 d = sf.parse(timers);// 日期转换为时间戳 113 } catch (ParseException e) { 114 e.printStackTrace(); 115 } 116 timeStemp = d.getTime(); 117 System.out.println(timeStemp); 118 return timeStemp; 119 } 120 121 }