📄 smptime.java
字号:
package com.khan.datetime;
import java.util.Calendar;
/**
* 时间编码类
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class SMPTime {
public static long getDateTime() {
Calendar now = Calendar.getInstance();
return now.get(Calendar.SECOND)
+ 100L * now.get(Calendar.MINUTE)
+ 10000L * now.get(Calendar.HOUR)
+ 1000000L * now.get(Calendar.DATE)
+ 100000000L * (now.get(Calendar.MONTH) + 1)
+ 10000000000L * now.get(Calendar.YEAR);
}
public static String getSqlServerDateString(long datetime) {
return getYear(datetime) + "-"
+ getMonth(datetime) + "-"
+ getDay(datetime) + " "
+ getHour(datetime) + ":"
+ getMinute(datetime) + ":"
+ getSecond(datetime);
}
/**
* 取得当前时间整数形式
* @return long
*/
public static long getNow() {
return getDateTime();
}
public static long getDay(boolean hour) {
Calendar now = Calendar.getInstance();
return now.get(Calendar.DATE)
+ 100L * (now.get(Calendar.MONTH) + 1)
+ 10000L * now.get(Calendar.YEAR);
}
public static long getTime(boolean hour) {
Calendar now = Calendar.getInstance();
return now.get(Calendar.SECOND)
+ 100L * now.get(Calendar.MINUTE)
+ 10000L * now.get(Calendar.HOUR);
}
/**
* 取得指定时间的整数形式
* @param year int
* @param month int
* @param day int
* @param hour int
* @param minute int
* @param second int
* @return long
*/
public static long getDateTime(int year, int month, int day, int hour, int minute, int second) {
return second + 100L * minute + 10000L * hour + 1000000L * day + 100000000L * month + 10000000000L * year;
}
/**
* 转换 Calendar 形式时间为 long形式
* @param date Calendar
* @param year boolean
* @return long
*/
public static long getDateTime(Calendar date, boolean year) {
int nYear = 0;
if (year == true) {
nYear = date.get(Calendar.YEAR);
}
return getDateTime(nYear, date.get(Calendar.MONTH) + 1, date.get(Calendar.DATE), date.get(Calendar.HOUR_OF_DAY), date.get(Calendar.MINUTE), date.get(Calendar.SECOND));
}
public static long getDateTime(long timeInSecond) {
Calendar date = Calendar.getInstance();
date.setTimeInMillis(timeInSecond * 1000);
return getDateTime(date, true);
}
/**
* 取得当前时间
* @param year boolean 是否包含年份
* @return long
*/
public static long getDateTime(boolean year) {
Calendar rightNow = Calendar.getInstance();
return getDateTime(rightNow, year);
}
/**
* 转换long的时间为java Calendar时间形式
* @param time long
* @return Calendar
*/
public static Calendar getCalendar(long time) {
Calendar now = Calendar.getInstance();
now.set(getYear(time), getMonth(time), getDay(time), getHour(time), getMinute(time), getSecond(time));
return now;
}
/**
* 取得当前月份第一天的日期
* @param year boolean
* @return long
*/
public static long getMonthStart(boolean year) {
return getMonthStart(Calendar.getInstance(), year);
}
/**
* 取得当前月第一天
* @param now Calendar
* @param year boolean 是否包含年份
* @return long
*/
public static long getMonthStart(Calendar now, boolean year) {
int nYear = 0;
if (year == true) {
nYear = now.get(Calendar.YEAR);
}
return getDateTime(nYear, now.get(Calendar.MONTH) + 1, 0, 0, 0, 0);
}
/**
* 取得时间中的年份
* @param date long
* @return int
*/
public static int getYear(long date) {
return (int) (date / 10000000000L);
}
/**
* 取得时间中的月份
* @param date long
* @return int
*/
public static int getMonth(long date) {
return (int) ((date / 100000000L) % 100);
}
/**
* 取得时间中的日
* @param date long
* @return int
*/
public static int getDay(long date) {
return (int) ((date / 1000000L) % 100);
}
/**
* 取得时间中的小时
* @param date long
* @return int
*/
public static int getHour(long date) {
return (int) ((date / 10000L) % 100);
}
/**
* 取得时间中的分钟
* @param date long
* @return int
*/
public static int getMinute(long date) {
return (int) ((date / 100L) % 100);
}
/**
* 取得日期中的秒
* @param date long
* @return int
*/
public static int getSecond(long date) {
return (int) (date % 100);
}
/**
* 取得当前时间中的秒
* @return int
*/
public static int getSecond() {
Calendar now = Calendar.getInstance();
return now.get(Calendar.SECOND);
}
/**
* 计算用户年纪
* @param birth long
* @param time long
* @return int
*/
public static int getAge(long birth, long time) {
return getYear(time - birth);
}
public static long getNextDay() {
Calendar now = Calendar.getInstance();
now.add(Calendar.DATE, 1);
return now.get(Calendar.DATE)
+ 100L * (now.get(Calendar.MONTH) + 1)
+ 10000L * now.get(Calendar.YEAR);
}
public static long getDay() {
Calendar now = Calendar.getInstance();
return now.get(Calendar.DATE)
+ 100L * (now.get(Calendar.MONTH) + 1)
+ 10000L * now.get(Calendar.YEAR);
}
/**
* 计算用户生日
* @param age int
* @param birth long
* @param time long
* @return long
*/
public static long getBirth(int age, long birth, long time) {
return birth + 10000000000L * (getAge(birth, time) - age);
}
public static void main(String[] args) { //test
System.out.println(SMPTime.getSqlServerDateString( SMPTime.getNow()));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -