|
@@ -0,0 +1,255 @@
|
|
|
+
|
|
|
+ * 文件名:@DateUtil.java <br/>
|
|
|
+ * 包名:cn.efunbox.afw.core.util <br/>
|
|
|
+ * 项目名:afw-core <br/>
|
|
|
+ * @author xtwin <br/>
|
|
|
+ */
|
|
|
+package cn.rankin.common.utils.util;
|
|
|
+
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.ParsePosition;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+
|
|
|
+ * 类名:DateUtil <br />
|
|
|
+ *
|
|
|
+ * 功能:
|
|
|
+ *
|
|
|
+ * @author xtwin <br />
|
|
|
+ * 创建时间:2015年12月4日 下午4:44:11 <br />
|
|
|
+ * @version 2015年12月4日
|
|
|
+ */
|
|
|
+public class DateUtil {
|
|
|
+
|
|
|
+
|
|
|
+ private static final Map<String, SimpleDateFormat> formats;
|
|
|
+
|
|
|
+ static {
|
|
|
+ formats = new HashMap<String, SimpleDateFormat>();
|
|
|
+
|
|
|
+ formats.put("yyyyMMdd", new SimpleDateFormat("yyyyMMdd"));
|
|
|
+ formats.put("HHmmss", new SimpleDateFormat("HHmmss"));
|
|
|
+ formats.put("yyyyMMddHHmmss", new SimpleDateFormat("yyyyMMddHHmmss"));
|
|
|
+ formats.put("yyyyMMddHHmmssSSS", new SimpleDateFormat("yyyyMMddHHmmssSSS"));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能:比较两个日期的顺序 <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-12-28 上午11:20:58 <br/>
|
|
|
+ */
|
|
|
+ public static int compare(Date one, Date two) {
|
|
|
+ return one.compareTo(two);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能: <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-12-4 下午02:06:59 <br/>
|
|
|
+ */
|
|
|
+ public static Date add(Date date, int field, int amount) {
|
|
|
+ return add(date, field, amount, null);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能: <br/>
|
|
|
+ * field like Calendar.SECOND
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-12-4 下午02:06:19 <br/>
|
|
|
+ */
|
|
|
+ public static Date add(Date date, int field, int amount, TimeZone timeZone) {
|
|
|
+ Calendar cal = (timeZone == null ? Calendar.getInstance() : Calendar.getInstance(timeZone));
|
|
|
+
|
|
|
+ cal.setTime(date);
|
|
|
+
|
|
|
+ cal.add(field, amount);
|
|
|
+
|
|
|
+ return cal.getTime();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能: <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-11-27 上午10:01:13 <br/>
|
|
|
+ */
|
|
|
+ public static Date parseDateTime(String source) throws ParseException {
|
|
|
+ return parse(source, "yyyyMMddHHmmss");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能: <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-11-27 上午10:01:28 <br/>
|
|
|
+ */
|
|
|
+ public static Date parseTime(String source) throws ParseException {
|
|
|
+ return parse(source, "HHmmss");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能: <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-11-27 上午10:00:50 <br/>
|
|
|
+ * @throws ParseException
|
|
|
+ */
|
|
|
+ public static Date parseDate(String source) throws ParseException {
|
|
|
+ return parse(source, "yyyyMMdd");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能: <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-11-27 上午10:00:17 <br/>
|
|
|
+ */
|
|
|
+ public static Date parse(String source, String pattern) throws ParseException {
|
|
|
+ return getFormat(pattern).parse(source);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能:获取获取毫秒值得时间戳 + 0-9 随机数一位 <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-11-26 下午07:58:17 <br/>
|
|
|
+ */
|
|
|
+ public static String getRandomCurrentTimeStamp() {
|
|
|
+ return formaCurrentTimeStamp(new Date())+ new Random().nextInt(9);
|
|
|
+ }
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能:获取秒值得时间戳 <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-11-26 下午07:58:17 <br/>
|
|
|
+ */
|
|
|
+ public static String getTimeStamp() {
|
|
|
+ return formatDateTime(new Date());
|
|
|
+ }
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能: 获取毫秒值得时间戳 <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-11-26 下午07:58:17 <br/>
|
|
|
+ */
|
|
|
+ public static String getCurrentTimeStamp() {
|
|
|
+ return formaCurrentTimeStamp(new Date());
|
|
|
+ }
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能: <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-11-26 下午07:58:17 <br/>
|
|
|
+ */
|
|
|
+ public static String formaCurrentTimeStamp(Date date) {
|
|
|
+ return format(date, "yyyyMMddHHmmssSSS");
|
|
|
+ }
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能: <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-11-26 下午07:58:17 <br/>
|
|
|
+ */
|
|
|
+ public static String formatDateTime(Date date) {
|
|
|
+ return format(date, "yyyyMMddHHmmss");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能:按默认规则格式化为时间 <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-11-26 下午07:57:33 <br/>
|
|
|
+ */
|
|
|
+ public static String formatTime(Date date) {
|
|
|
+ return format(date, "HHmmss");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能:按默认规则格式化日期 <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-11-26 下午07:56:47 <br/>
|
|
|
+ */
|
|
|
+ public static String formatDate(Date date) {
|
|
|
+ return format(date, "yyyyMMdd");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能: <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-11-26 下午07:55:49 <br/>
|
|
|
+ */
|
|
|
+ public static String format(Date date, String pattern) {
|
|
|
+ return getFormat(pattern).format(date);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * 功能: <br/>
|
|
|
+ *
|
|
|
+ * @author xtwin <br/>
|
|
|
+ * @version 2013-11-27 上午09:59:37 <br/>
|
|
|
+ */
|
|
|
+ private static SimpleDateFormat getFormat(String pattern) {
|
|
|
+ SimpleDateFormat sdf = formats.get(pattern);
|
|
|
+
|
|
|
+ if (null == sdf) {
|
|
|
+ formats.put(pattern, sdf = new SimpleDateFormat(pattern));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ sdf.setLenient(false);
|
|
|
+
|
|
|
+ return sdf;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 将短时间格式时间转换为字符串 yyyy-MM-dd
|
|
|
+ *
|
|
|
+ * @param dateDate
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String dateToStr(Date dateDate) {
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String dateString = formatter.format(dateDate);
|
|
|
+ return dateString;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 将短时间格式字符串转换为时间 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;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void main(String[] args) {
|
|
|
+ for (int i = 0; i < 20; i++) {
|
|
|
+ System.out.println(DateUtil.getRandomCurrentTimeStamp());
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|