Java日期时间 – Java遗留日期日历
Date类的一个对象存储自1970年1月1日午夜时代起经过的毫秒数。 并表示时间的瞬间。
Date类默认构造函数使用当前系统日期时间创建一个Date对象。
例子
下面的代码显示了如何使用Date类。
import java.util.Date; public class Main { public static void main(String[] args) { Date currentDate = new Date(); System.out.println("Current date: " + currentDate); long millis = currentDate.getTime(); System.out.println("Current datetime in millis: " + millis); } }
上面的代码生成以下结果。
遗留日历
日历是一个抽象类。 GregorianCalendar类扩展了Calendar类。
构造函数
GregorianCalendar类有一个默认的构造函数,它创建一个对象来表示当前的datetime。
GregorianCalendar类还定义了我们可以用来创建特定日期的构造函数。
我们还可以在特定时区创建日期。
import java.util.Calendar; import java.util.GregorianCalendar; import java.util.TimeZone; public class Main { public static void main(String[] args) { // Get the current date in the system default time zone GregorianCalendar currentDate = new GregorianCalendar(); System.out.println(currentDate.getTime()); // Get GregorianCalendar object representing March 21, 2014 07:30:45 AM GregorianCalendar someDate = new GregorianCalendar(2014, Calendar.MARCH, 21, 7, 30, 45); System.out.println(someDate.getTime()); // Get Indian time zone, which is GMT+05:30 TimeZone indianTZ = TimeZone.getTimeZone("GMT+05:30"); GregorianCalendar indianDate = new GregorianCalendar(indianTZ); System.out.println(indianDate.getTime()); } }
上面的代码生成以下结果。
领域
日期的月份部分范围为0到11.一月为0,二月为1,依此类推。
get()与请求的字段返回datetime中的字段的值。
import java.util.Calendar; import java.util.GregorianCalendar; public class Main { public static void main(String[] args) { GregorianCalendar gc = new GregorianCalendar(); // current year value int year = gc.get(Calendar.YEAR); System.out.println(year); // current month value int month = gc.get(Calendar.MONTH); System.out.println(month); // day of month int day = gc.get(Calendar.DAY_OF_MONTH); System.out.println(day); // hour value int hour = gc.get(Calendar.HOUR); System.out.println(hour); // minute value int minute = gc.get(Calendar.MINUTE); System.out.println(minute); // second values int second = gc.get(Calendar.SECOND); System.out.println(second); } }
上面的代码生成以下结果。
add()
add()
向日期添加一个值。 金额可以是负数或正数。 日历知道如何调整。
import java.util.Calendar; import java.util.GregorianCalendar; public class Main { public static void main(String[] args) { GregorianCalendar gc = new GregorianCalendar(2014, Calendar.DECEMBER, 1); gc.add(Calendar.MONTH, 5); System.out.println(gc.getTime()); } }
上面的代码生成以下结果。
roll()
roll()
向指定的日历字段添加金额,而不更改较大的字段。
这是一个重载的方法。
void roll(int field, int amount) void roll(int field, boolean up)
假设我们将GregorianCalendar设置为1999年8月31日。调用roll(Calendar.MONTH,8)将日历设置为1999年4月30日.DAY_OF_MONTH字段在四月份不能为31。 DAY_OF_MONTH被设置为最接近的可能值30.YEAR字段保持1999的值,因为它是比MONTH大的字段。
roll(Calendar.MONTH,1)与roll相同(Calendar。MONTH,true)。
roll(Calendar.MONTH,-1)与roll(Calendar.MONTH,false)相同。
import java.util.Calendar; import java.util.GregorianCalendar; public class Main { public static void main(String[] args) { GregorianCalendar gc = new GregorianCalendar(); System.out.println("Current Date: " + gc.getTime()); // Add 1 year gc.add(Calendar.YEAR, 1); System.out.println(gc.getTime()); // Add 15 days gc.add(Calendar.DATE, 15); System.out.println(gc.getTime()); } }
上面的代码生成以下结果。