由于java.util.Date基本上已被弃用,因此获取给定日期(UTC时间)的时间戳的正确方法是什么?可以与之比较的那个System.currentTimeMillis()
.
使用Calendar类,您可以在特定时区的特定时间创建时间戳.完成后,您可以获得毫秒时间戳以与以下内容进行比较:
Calendar cal = new GregorianCalendar(); cal.set(Calendar.DAY_OF_MONTH, 10); // etc... if (System.currentTimeMillis() < cal.getTimeInMillis()) { // do your stuff }
编辑:更改为使用更直接的方法从Calendar实例获取以毫秒为单位的时间.谢谢Outlaw程序员
日期所用的许多东西的"官方"替代品是日历.不幸的是,这是相当笨拙和过度设计.您的问题可以像这样解决:
long currentMillis = System.currentTimeMillis(); Date date = new Date(currentMillis); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); long calendarMillis = calendar.getTimeInMillis(); assert currentMillis == calendarMillis;
日历也可以以不同方式初始化,甚至一次一个字段(小时,分钟,秒等).看看Javadoc.