一些日期的知识
* 檢查兩天是否為同一天(2個Long類型的日期格式)
* @param ms1
* @param ms2
* @return
*/
public static boolean isSameDayOfMillis(long ms1, long ms2) {
final long interval = ms1 - ms2;
return interval < MILLIS_IN_DAY
&& interval > -1L * MILLIS_IN_DAY
&& toDay(ms1) == toDay(ms2);
}
private static long toDay(long millis) {
return (millis + TimeZone.getDefault().getOffset(millis)) / MILLIS_IN_DAY;
}
Math.abs(DateUtil.currentTimeMilliSeconds()-data.getSignInTime()) / (1000 * 60 * 60 * 24) <= 1 //當簽到的日期不大于一時,定為不是連續(xù)簽到,當前日期和上一次簽到的日期之間的差的絕對值小于1時定為連續(xù)簽到
簽到日歷
現(xiàn)在用到的是Mongo數(shù)據(jù)庫,它的存儲日期存儲類型可以是Date,
ISODate("2019-09-02T00:00:00.000+08:00") Date month = DateUtil.toDate(monthStr);//monthStr表示月份 2019-9
Calendar monthCal = Calendar.getInstance(); monthCal.setTime(month);
Date firstDay = DateUtil.getFirstDayOfMonth(monthCal.get(Calendar.YEAR), monthCal.get(Calendar.MONTH));
Date lastDay = DateUtil.getLastDayOfMonth(monthCal.get(Calendar.YEAR), monthCal.get(Calendar.MONTH));
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
query.and(query.criteria("signInDate").greaterThanOrEq(format.parse(format.format(firstDay))), query.criteria("signInDate").lessThanOrEq(format.parse(format.format(lastDay))));
原文:http://www.blogjava.net/algz/articles/324727.html
1、java.util.Date類型轉(zhuǎn)換成long類型
java.util.Date dt = new Date();
System.out.println(dt.toString());?? //java.util.Date的含義
long lSysTime1 = dt.getTime() / 1000;?? //得到秒數(shù),Date類型的getTime()返回毫秒數(shù)
2、由long類型轉(zhuǎn)換成Date類型
SimpleDateFormat sdf= new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
//前面的lSysTime是秒數(shù),先乘1000得到毫秒數(shù),再轉(zhuǎn)為java.util.Date類型
java.util.Date dt = new Date(lSysTime1 * 1000);??
String sDateTime =?sdf.format(dt);? //得到精確到秒的表示:08/31/2006 21:08:00
System.out.println(sDateTime);
?
3、"08/31/2006 21:08:00"格式的String轉(zhuǎn)換java.util.Date類型
String sDt = "08/31/2006 21:08:00";
SimpleDateFormat sdf= new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date dt2 = sdf.parse(sDt);
//繼續(xù)轉(zhuǎn)換得到秒數(shù)的long型
long lTime = dt2.getTime() / 1000;
?
?
//注意HH與hh含認不同,HH表示以24小時制取,hh表示以12小時制取
常用的格式的含義,摘自Jdk,注意大小寫的含義通常是不同的:
字母??? 含義??????????????????????????? 示例
y??? Year???????????????????????????? 1996;96???????????? 哪一年
M?? Month in year? J????????????? uly;Jul;07?????????? 一年中的哪一月
m?? Minute in hour???????????????? 30??????????????????? 一個小時中的第幾分鐘
w?? Week in year?????????????????? 27?????????????????? 一年中的第幾個星期
W?? Week in month???????????????? 2??????????????????? 一個月中的第幾個星期
D??? Day in year???????????????????? 189???????????????? 一年中的第幾天
d??? Day in month?????????????????? 10????????????????? 一個月中的第幾天
H??? Hour in day (0-23)??????????? 0?????????????????? 一天中的第幾個小時(24小時制)
h??? Hour in am/pm (1-12)??????? 12????????????????? 一天中上午、下午的第幾個小時(12小時制)
S??? Millisecond????????????????????? 978???????????????? 毫秒數(shù)
s??? Second in minute????????????? 55????????????????? 一分鐘的第幾秒
?
4、系統(tǒng)當前時間
long lSysTime2 = System.currentTimeMillis();?? //得到毫秒表示的系統(tǒng)當前時間
?
?
?
?轉(zhuǎn)載于:https://www.cnblogs.com/echo777/p/11454545.html
總結(jié)
- 上一篇: 搜索引擎学习(四)中文分词器
- 下一篇: Python从入门到项目实践(明日科技