initial commit: lottery 项目集(三工程统一管理)
- apps/lotteryServer, lotteryCapture, lotteryOpen 三个业务工程 - 忽略 archive/, tools/, infra/data/ 大目录与敏感配置文件 - 移除 lotteryServer 原嵌套 git,并入顶层统一管理
This commit is contained in:
@@ -0,0 +1,421 @@
|
||||
package javautils.date;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
|
||||
public class DateUtil {
|
||||
|
||||
/**
|
||||
* 获取当前时间
|
||||
* @return
|
||||
*/
|
||||
public static String getCurrentTime() {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
return dateToString(g);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前日期
|
||||
* @return
|
||||
*/
|
||||
public static String getCurrentDate() {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
return dateToStringSim(g);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取昨天日期
|
||||
* @return
|
||||
*/
|
||||
public static String getYesterday() {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
g.set(Calendar.DATE, g.get(Calendar.DATE) - 1);
|
||||
return dateToStringSim(g);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取明天日期
|
||||
* @return
|
||||
*/
|
||||
public static String getTomorrow() {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
g.set(Calendar.DATE, g.get(Calendar.DATE) + 1);
|
||||
return dateToStringSim(g);
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换成时间
|
||||
* @param ms
|
||||
* @return
|
||||
*/
|
||||
public static String getTime(long ms) {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
g.setTimeInMillis(ms);
|
||||
return dateToString(g);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据时间获取GregorianCalendar
|
||||
* @param time
|
||||
* @return
|
||||
*/
|
||||
private static GregorianCalendar getCalendarByTime(String time, String format) {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
try {
|
||||
g.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time));
|
||||
} catch (ParseException e) {
|
||||
g = null;
|
||||
}
|
||||
return g;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算时间
|
||||
* @param g
|
||||
* @param seconds
|
||||
* @return
|
||||
*/
|
||||
private static String calcDate(GregorianCalendar g, int seconds) {
|
||||
if(g == null) {
|
||||
g = new GregorianCalendar();
|
||||
}
|
||||
g.add(Calendar.SECOND, seconds);
|
||||
return dateToString(g);
|
||||
}
|
||||
|
||||
/**
|
||||
* 日期转字符串
|
||||
* @param date
|
||||
* @return
|
||||
*/
|
||||
public static String dateToString(Date date) {
|
||||
try {
|
||||
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String s = formatter.format(date);
|
||||
return s;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 字符串转日期
|
||||
* @param date
|
||||
* @return
|
||||
*/
|
||||
public static Date stringToDate(String date) {
|
||||
try {
|
||||
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date d = (Date) formatter.parse(date);
|
||||
return d;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 字符串转日期, 自定义格式
|
||||
* @param date
|
||||
* @param format
|
||||
* @return
|
||||
*/
|
||||
public static Date stringToDate(String date, String format) {
|
||||
try {
|
||||
DateFormat formatter = new SimpleDateFormat(format);
|
||||
Date d = (Date) formatter.parse(date);
|
||||
return d;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取日期相差毫秒数
|
||||
* @param subDate
|
||||
* @param minDate
|
||||
* @return
|
||||
*/
|
||||
public static long calcDate(String subDate, String minDate) {
|
||||
long lSubDate = getCalendarByTime(subDate, "yyyy-MM-dd HH:mm:ss").getTimeInMillis();
|
||||
long lMinDate = getCalendarByTime(minDate, "yyyy-MM-dd HH:mm:ss").getTimeInMillis();
|
||||
return (lSubDate - lMinDate);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据日期计算相差天数,忽略时分秒
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static int calcDays(Date date1, Date date2) {
|
||||
Calendar date1Calendar = Calendar.getInstance();
|
||||
date1Calendar.setTime(date1);
|
||||
|
||||
Calendar date2Calendar = Calendar.getInstance();
|
||||
date2Calendar.setTime(date2);
|
||||
|
||||
int day1 = date1Calendar.get(Calendar.DAY_OF_YEAR);
|
||||
int day2 = date2Calendar.get(Calendar.DAY_OF_YEAR);
|
||||
|
||||
return day1 - day2;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据差值计算出新的时间
|
||||
* @param time
|
||||
* @param seconds
|
||||
* @return
|
||||
*/
|
||||
public static String calcDateByTime(String time, int seconds) {
|
||||
GregorianCalendar g = getCalendarByTime(time, "yyyy-MM-dd HH:mm:ss");
|
||||
return calcDate(g, seconds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据天数计算出新的日期
|
||||
* @param date
|
||||
* @param days
|
||||
* @return
|
||||
*/
|
||||
public static String calcNewDay(String date, int days) {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
g.setTimeInMillis(formatTime(date, "yyyy-MM-dd"));
|
||||
g.set(Calendar.DATE, g.get(Calendar.DATE) + days);
|
||||
return dateToStringSim(g);
|
||||
}
|
||||
|
||||
/**
|
||||
* 下一天
|
||||
* @param date
|
||||
* @return
|
||||
*/
|
||||
public static String calcNextDay(String date) {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
g.setTimeInMillis(formatTime(date, "yyyy-MM-dd"));
|
||||
g.set(Calendar.DATE, g.get(Calendar.DATE) + 1);
|
||||
return dateToStringSim(g);
|
||||
}
|
||||
|
||||
/**
|
||||
* 上一天
|
||||
* @param date
|
||||
* @return
|
||||
*/
|
||||
public static String calcLastDay(String date) {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
g.setTimeInMillis(formatTime(date, "yyyy-MM-dd"));
|
||||
g.set(Calendar.DATE, g.get(Calendar.DATE) - 1);
|
||||
return dateToStringSim(g);
|
||||
}
|
||||
|
||||
private static Calendar getDateOfMonth(Calendar date, int num, boolean flag) {
|
||||
Calendar lastDate = (Calendar) date.clone();
|
||||
if(flag) {
|
||||
lastDate.add(Calendar.MONTH, num);
|
||||
}else {
|
||||
lastDate.add(Calendar.MONTH, -num);
|
||||
}
|
||||
|
||||
return lastDate;
|
||||
}
|
||||
|
||||
private static Calendar getDateOfLastMonth(String dateStr, int num, boolean flag) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
try {
|
||||
Date date = sdf.parse(dateStr);
|
||||
Calendar c = Calendar.getInstance();
|
||||
c.setTime(date);
|
||||
return getDateOfMonth(c, num, flag);
|
||||
} catch (Exception e) {
|
||||
throw new IllegalArgumentException(
|
||||
"Invalid date format(yyyyMMdd): " + dateStr);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上个月的同一天
|
||||
* @param date
|
||||
* @param num
|
||||
* @param flag
|
||||
* @return
|
||||
*/
|
||||
public static String getSameDateOfLastMonth(String date, int num, boolean flag) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String lastDate = sdf.format(getDateOfLastMonth(date, num, flag).getTime());
|
||||
return lastDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* GregorianCalendar转成字符串
|
||||
* @param g
|
||||
* @return
|
||||
*/
|
||||
private static String dateToString(GregorianCalendar g) {
|
||||
String year = String.valueOf(g.get(Calendar.YEAR));
|
||||
String month = String.format("%02d", g.get(Calendar.MONTH) + 1);
|
||||
String day =String.format("%02d", g.get(Calendar.DAY_OF_MONTH));
|
||||
String hours = String.format("%02d", g.get(Calendar.HOUR_OF_DAY));
|
||||
String minutes = String.format("%02d", g.get(Calendar.MINUTE));
|
||||
String seconds = String.format("%02d", g.get(Calendar.SECOND));
|
||||
return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据时间转成MS
|
||||
* @param time
|
||||
* @param format
|
||||
* @return
|
||||
*/
|
||||
public static long stringToLong(String time, String format) {
|
||||
return stringToDate(time, format).getTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* GregorianCalendar转成日期格式
|
||||
* @param g
|
||||
* @return
|
||||
*/
|
||||
public static String dateToStringSim(GregorianCalendar g) {
|
||||
String year = String.valueOf(g.get(Calendar.YEAR));
|
||||
String month = String.format("%02d", g.get(Calendar.MONTH) + 1);
|
||||
String day = String.format("%02d", g.get(Calendar.DAY_OF_MONTH));
|
||||
return year + "-" + month + "-" + day;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前时间
|
||||
* @return
|
||||
*/
|
||||
public static String getCurTimeStr() {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
String year = String.valueOf(g.get(Calendar.YEAR));
|
||||
String month = String.format("%02d", g.get(Calendar.MONTH) + 1);
|
||||
String day = String.format("%02d", g.get(Calendar.DAY_OF_MONTH));
|
||||
String hours = String.format("%02d", g.get(Calendar.HOUR_OF_DAY));
|
||||
String minutes = String.format("%02d", g.get(Calendar.MINUTE));
|
||||
String seconds = String.format("%02d", g.get(Calendar.SECOND));
|
||||
|
||||
return year + month + day + hours + minutes + seconds;
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化时间
|
||||
* @param time
|
||||
* @param oldFormat
|
||||
* @param newFormat
|
||||
* @return
|
||||
*/
|
||||
public static String formatTime(String time, String oldFormat,
|
||||
String newFormat) {
|
||||
return new SimpleDateFormat(newFormat).format(stringToDate(time,
|
||||
oldFormat));
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化日期
|
||||
* @param date
|
||||
* @param format
|
||||
* @return
|
||||
*/
|
||||
public static String formatTime(Date date, String format) {
|
||||
return new SimpleDateFormat(format).format(date);
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化时间
|
||||
* @param time
|
||||
* @param format
|
||||
* @return
|
||||
*/
|
||||
public static String formatTime(long time, String format) {
|
||||
return formatTime(getTime(time), "yyyy-MM-dd HH:mm:ss", format);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取时间, 根据格式化参数
|
||||
* @param time
|
||||
* @param format
|
||||
* @return
|
||||
*/
|
||||
public static long formatTime(String time, String format) {
|
||||
return stringToDate(time, format).getTime();
|
||||
}
|
||||
|
||||
public static String dateForm(String date, String config) {
|
||||
if ("MM/dd/yyyy".equals(config)) {
|
||||
String[] dateStrs = date.split("/");
|
||||
return dateStrs[2] + "-" + dateStrs[0] + "-" + dateStrs[1];
|
||||
}
|
||||
if ("MM-dd-yyyy".equals(config)) {
|
||||
String[] dateStrs = date.split("-");
|
||||
return dateStrs[2] + "-" + dateStrs[0] + "-" + dateStrs[1];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static int getYear(String time) {
|
||||
return Integer.parseInt(time.substring(0, 4));
|
||||
}
|
||||
|
||||
public static int getMonth(String time) {
|
||||
return Integer.parseInt(time.substring(5, 7));
|
||||
}
|
||||
|
||||
public static int getDay(String time) {
|
||||
return Integer.parseInt(time.substring(8, 10));
|
||||
}
|
||||
|
||||
public static int getHours(String time) {
|
||||
return Integer.parseInt(time.substring(11, 13));
|
||||
}
|
||||
|
||||
public static int getMinutes(String time) {
|
||||
return Integer.parseInt(time.substring(14, 16));
|
||||
}
|
||||
|
||||
public static int getSeconds(String time) {
|
||||
return Integer.parseInt(time.substring(17));
|
||||
}
|
||||
|
||||
public static int getYear() {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
return g.get(Calendar.YEAR);
|
||||
}
|
||||
|
||||
public static int getMonth() {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
return g.get(Calendar.MONTH) + 1;
|
||||
}
|
||||
|
||||
public static int getDay() {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
return g.get(Calendar.DAY_OF_MONTH);
|
||||
}
|
||||
|
||||
public static int getHours() {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
return g.get(Calendar.HOUR_OF_DAY);
|
||||
}
|
||||
|
||||
public static int getMinutes() {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
return g.get(Calendar.MINUTE);
|
||||
}
|
||||
|
||||
public static int getSeconds() {
|
||||
GregorianCalendar g = new GregorianCalendar();
|
||||
return g.get(Calendar.SECOND);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user