class Employee
{
private Date doj;
public Employee (Date doj)
{
this.doj=doj;
}
public Date getDoj()
{
return doj;
}
}
class TestEmployeeSort
{
public static List getEmployees()
{
List col=new ArrayList();
col.add(new Employee(new Date(1986,21,22));
}
}
在上面的代码中,我使用Date来设置日期.我想知道如何使用日历功能来做到这一点.我知道我可以使用getInstance()并设置日期.但是我不知道如何实现它.请帮助我了解如何使用日历功能设置日期
解决方法:
TL;博士
LocalDate.of( 1986 , Month.FEBRUARY , 23 )
日期,只
这些类都不是,Date&日历,适合.
您显然想要一个仅具有日期的值,而没有日期和时区.相反,Date类是带有UTC时间的日期时间的日期,而Calendar是带有时区的日期时间.
此外,Date& Calendar已过时,已由java.time类取代.
LOCALDATE的
LocalDate类表示不带日期和时区的仅日期值.
今天
时区对于确定日期至关重要.在任何给定时刻,日期都会在全球范围内变化.例如,在Paris France午夜之后的几分钟是新的一天,而在Montréal Québec仍然是“昨天”.
如果未指定时区,则JVM隐式应用其当前的默认时区.该默认值可能随时更改,因此您的结果可能会有所不同.最好将您的期望/期望时区明确指定为参数.
以大洲/地区的格式指定proper time zone name,例如America/Montreal、Africa/Casablanca或太平洋/奥克兰.切勿使用EST或IST等3-4个字母的缩写,因为它们不是真实的时区,不是标准化的,甚至不是唯一的(!).
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z ); // Get current date for a particular time zone.
具体日期
或指定一个日期.您可以用数字设置月份,与传统类中从零开始的疯狂编号不同,1月至12月的编号为1-12.
LocalDate ld = LocalDate.of( 1986 , 2 , 23 ) ; // Both year and month have same numbering. 1986 is the year 1986. 1-12 is January-December.
或者,最好使用预定义的Month枚举对象,一年中的每个月使用一个.提示:在整个代码库中使用这些Month对象,而不是仅使用整数,可以使您的代码更具自记录性,确保有效值并提供type-safety.
LocalDate ld = LocalDate.of( 1986 , Month.FEBRUARY , 23 ) ;
字符串
通过调用toString:YYYY-MM-DD,以标准ISO 8601格式生成表示日期值的字符串.有关其他格式,请参见DateTimeFormatter类.
String output = ld.toString() ; // Generate a string in standard ISO 8601 format, YYYY-MM-DD.
关于java.time
要了解更多信息,请参见Oracle Tutorial.并在Stack Overflow中搜索许多示例和说明.规格为JSR 310.
在哪里获取java.time类?
>内置.
>标准Java API的一部分,具有捆绑的实现.
> Java 9添加了一些次要功能和修复.
>许多java.time功能都向后移植到Java 6& ThreeTen-Backport中的7.
>更高版本的java.time类的Android捆绑实现.
>对于较早的Android,ThreeTenABP项目改编了ThreeTen-Backport(如上所述).参见How to use ThreeTenABP….
ThreeTen-Extra项目使用其他类扩展了java.time.该项目为将来可能在java.time中添加内容提供了一个试验场.您可能会在这里找到一些有用的类,例如Interval、YearWeek、YearQuarter和more.
标签:java
来源: https://codeday.me/bug/20191013/1911529.html