System.currentTimeMillis() for a given date?
本问题已经有最佳答案,请猛点这里访问。
由于java.util.Date基本上已被弃用,因此获取给定日期(UTC时间)的时间戳的正确方法是什么? 可与
使用Calendar类,您可以在特定时区的特定时间创建时间戳。完成后,您可以获得毫秒时间戳以与以下内容进行比较:
1 2 3 4 5 6 7 | Calendar cal = new GregorianCalendar(); cal.set(Calendar.DAY_OF_MONTH, 10); // etc... if (System.currentTimeMillis() < cal.getTimeInMillis()) { // do your stuff } |
编辑:更改为使用更直接的方法从Calendar实例获取以毫秒为单位的时间。谢谢Outlaw程序员
日期所用的许多东西的"官方"替代品是日历。不幸的是,这是相当笨拙和过度设计。您的问题可以像这样解决:
1 2 3 4 5 6 |
日历也可以以不同方式初始化,甚至一次一个字段(小时,分钟,秒等)。看看Javadoc。
虽然我自己没有尝试过,但我相信如果您的项目允许使用外部库,您应该查看JODA-Time项目(开源)。
AFAIK,JODA时间对日期/时间的新JSR(通常在Java7中)贡献了很多。
很多人声称JODA时间是所有java.util.Date/Calendar问题的解决方案;-)
绝对值得一试。
看看Calendar类。
您可以使用当前时间(不推荐使用)创建数据,然后从中创建日历(还有其他方法)。