一、获取当前时间及未来时间
1 package com.alipay.ipay.gn.commontool; 2 3 import org.testng.annotations.Test; 4 5 import java.text.SimpleDateFormat; 6 import java.util.Calendar; 7 import java.util.Date; 8 import java.util.GregorianCalendar; 9 10 /** 11 * @author 12 * @version 1.0 13 * @time 2019/12/1 16:59 14 */ 15 public class GetDate { 16 /** 17 * 获取当天日期 18 * 19 * @param dateFormat 日期格式(yyyy-MM-dd HH:mm:ss) 20 * @return 21 */ 22 public static String getNowDate(String dateFormat) { 23 SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat); 24 String nowDate = simpleDateFormat.format(new Date()); 25 26 return nowDate; 27 } 28 29 /** 30 * 获取当天后的第n天日期 31 * 32 * @param dateFormat 日期格式(yyyy-MM-dd HH:mm:ss) 33 * @param futureCount 34 * @return 35 */ 36 public static String getFutureDate(String dateFormat, int futureCount) { 37 SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat); 38 39 Calendar calendar = new GregorianCalendar(); 40 calendar.setTime(new Date()); 41 calendar.add(calendar.DATE, futureCount); 42 String futureDate = simpleDateFormat.format(calendar.getTime()); 43 44 return futureDate; 45 } 46 47 @Test 48 public void testGetNowDate() { 49 System.out.println(getNowDate("yyyy-MM-dd HH:mm:ss")); // 2019-12-11 21:04:44 50 System.out.println(getNowDate("yyyyMMdd")); // 20191211 51 System.out.println(getNowDate("yyyyMMddHHmmss")); // 20191211210444 52 System.out.println(getNowDate("yyyyMMddHHmmssSSS")); // 20191211210444619 53 } 54 55 @Test 56 public void testGetFutureDate() { 57 System.out.println(String.format("今天后的第%s天是:%s", 2, getFutureDate("yyyy-MM-dd", 2))); // 今天后的第2天是:2019-11-29 58 } 59 60 }
扩展:
System.currentTimeMillis()
二、日期、数字互转
/** * 功能:数字格式的日期装换为指定格式的日期 * * @param longDate 数字格式的日期 (如:1477843200000) * @param dateFormat 转换后的日期格式 (如:yyyy-MM-dd) * @return */ public static String longDateToDate(String longDate, String dateFormat) { Date date = new Date(Long.parseLong(longDate)); SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat); return simpleDateFormat.format(date); } /** * 功能:指定格式的日期转换为数字格式的日期 * * @param date 日期 * @param dateFormat 日期格式 * @return */ public static long dateToLongDate(String date, String dateFormat) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat); try { long time = simpleDateFormat.parse(date).getTime(); return time; } catch (ParseException e) { e.printStackTrace(); } return -1; }
输出:
2019-11-14
1573660800000
三、获取当前时间戳(long类型)
public static long getNowLongDate(int length) { // 获取13位时间戳(单位毫秒) if (length == 13) { return System.currentTimeMillis(); } // 获取10位时间戳(单位秒) if (length == 10) { return System.currentTimeMillis() / 1000; } return 0; } public static void main(String[] args) { System.out.println(getNowLongDate(10)); System.out.println(getNowLongDate(13)); }
输出:
1586791104
1586791104262