Open techiall opened 5 years ago
Java 中的 Date 类,已经不推荐使用了,现在使用 Calendar 类,他可以转换成 Date ,通过 .getTime() 方法返回一个 Date 。
Calendar
Date
.getTime()
/** * @return 返回当日零点时间戳 */ public static long getTodayZeroTime() { Calendar calendar = Calendar.getInstance(); calendar.set( calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE), 0, 0, 0 ); return calendar.getTimeInMillis(); }
Calendar 通过 getInstance() 方法获得一个当前时间的对象;通过 set 方法可以设置你所需要的时间;get 方法可获得时间对应字段的值。getTimeInMillis() 返回毫秒精度的时间戳。
getInstance()
set
get
getTimeInMillis()
有人说这还不简单,直接 60 * 60 * 24 ,60 秒 60 分钟 24 小时,不就是答案了。
60 * 60 * 24
private static final int ONE_DAY = 60 * 60 * 24;
这样子确实可以,但是没那么直观吧,我们可以通过使用 TimeUnit 类。
TimeUnit
private static final long ONE_DAY = TimeUnit.DAYS.toSeconds(1);
是不是比上面简洁和明白多了,它的意思就是将 1 DAYA 转换成 Secondes。
TimeUnit 类有很多方法,可以用于时间转换。
写代码过程中,总会用到一些工具类,自己封装的或者别人写的,再封装一层。
如封装了一个 TimeUtils 类,用于和时间相关的操作,提供静态方法。那我们可以通过 @Component 进行注入。
@Component
但是我更加喜欢以下写法,不加 @Component 注解,并私有构造方法,如果构造了就抛异常。
但是如果加了 @Component 方法,又私有了构造函数,会抛异常,因为注入失败。
import java.util.Calendar; /** * @author techial */ public class TimeUtils { private TimeUtils() { throw new IllegalStateException("Utility class"); } /** * @return 返回当日零点时间戳 */ public static long getTodayZeroTime() { Calendar calendar = Calendar.getInstance(); calendar.set( calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE), 0, 0, 0 ); return calendar.getTimeInMillis(); } }
获得当前日期凌晨的时间戳
Java 中的 Date 类,已经不推荐使用了,现在使用
Calendar
类,他可以转换成Date
,通过.getTime()
方法返回一个Date
。Calendar
通过getInstance()
方法获得一个当前时间的对象;通过set
方法可以设置你所需要的时间;get
方法可获得时间对应字段的值。getTimeInMillis()
返回毫秒精度的时间戳。一天有多少秒
有人说这还不简单,直接
60 * 60 * 24
,60 秒 60 分钟 24 小时,不就是答案了。这样子确实可以,但是没那么直观吧,我们可以通过使用
TimeUnit
类。是不是比上面简洁和明白多了,它的意思就是将 1 DAYA 转换成 Secondes。
TimeUnit 类有很多方法,可以用于时间转换。
Spring Boot Utils 类
写代码过程中,总会用到一些工具类,自己封装的或者别人写的,再封装一层。
如封装了一个 TimeUtils 类,用于和时间相关的操作,提供静态方法。那我们可以通过
@Component
进行注入。但是我更加喜欢以下写法,不加
@Component
注解,并私有构造方法,如果构造了就抛异常。但是如果加了
@Component
方法,又私有了构造函数,会抛异常,因为注入失败。