爪哇岛一年中的儒略日tl;博士“儒略日”术语java.timeorg.threeten.extra.DayOfYear关于 java.time
我已经在 http://www.rgagnon.com/javadetails/java-0506.html 看到了“解决方案”,但它不能正常工作。例如,昨天(6月8日)应该是159,但它说它是245。
那么,是否有人在Java中具有用于获取当前日期的三位数儒略日(不是儒略日期 - 我需要今年的一天)的解决方案?
谢谢!马克
我已经在 http://www.rgagnon.com/javadetails/java-0506.html 看到了“解决方案”,但它不能正常工作。例如,昨天(6月8日)应该是159,但它说它是245。
那么,是否有人在Java中具有用于获取当前日期的三位数儒略日(不是儒略日期 - 我需要今年的一天)的解决方案?
谢谢!马克
DateFormat d = new SimpleDateFormat("D");
System.out.println(d.format(date));
LocalDate.now().getDayOfYear()
...或。。。
org.threeten.extra.DayOfYear.now()
术语“儒略日”有时被松散地用于表示一年中的第二天,或序数日期,表示从1到365或366(闰年)的数字。1月1日是,1月2日是,12月31日是(或闰年)。1
2
365
366
这种松散(不正确)的使用可能来自天文学和其他领域中跟踪日期的使用,作为自公元前4713年1月1日(在儒略历上)世界时中午以来的连续天数。如今,儒略历接近两百五十万,今天。Julian
2,457,576
Java 8 及更高版本中内置的 java.time 框架提供了一个简单的工具来获取一年中的某一天。
该类表示一个仅日期值,不带时间,也不带时区。您可以询问一年中的某一天。LocalDate
LocalDate localDate = LocalDate.of ( 2010 , Month.JUNE , 8 );
int dayOfYear = localDate.getDayOfYear ();
转储到控制台。结果显示,2010年6月8日确实是第159天。
System.out.println ( "localDate: " + localDate + " | dayOfYear: " + dayOfYear );
本地日期: 2010-06-08 |当日: 159
时区对于确定日期至关重要。在任何给定的时刻,日期在全球范围内因区域而异。例如,法国巴黎午夜后几分钟是新的一天,而在魁北克蒙特利尔仍然是“昨天”。
ZoneId z = ZoneId.of( “America/Montreal” );
LocalDate today = LocalDate.now( z );
int dayOfYear = today.getDayOfYear ();
从数字到日期,从另一个方向。
LocalDate ld = Year.of( 2017 ).atDay( 159 ) ;
org.threeten.extra.DayOfYear
ThreeTen-Extra库为Java中内置的java.time类添加了功能。
此库提供了一个类来显式表示任何年份的序号日:DayOfYear
。使用此类(而不仅仅是整数)会使代码更具自文档性,提供类型安全性并确保有效值。
DayOfYear dayOfYear = DayOfYear.from( LocalDate.of ( 2010 , Month.JUNE , 8 ) ) ;
获取具有特定年份的日期。DayOfYear
LocalDate localDate = dayOfYear.atYear( 2023 ) ;
java.time 框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧旧日期时间类,如java.util.Date
,Calendar
和SimpleDateFormat
。
要了解更多信息,请参阅 Oracle 教程。搜索 Stack Overflow 以获取许多示例和解释。规格是JSR 310。
Joda-Time 项目现在处于维护模式,建议迁移到 java.time 类。
您可以直接与数据库交换 java.time 对象。使用符合 JDBC 4.2 或更高版本的 JDBC 驱动程序。不需要字符串,不需要类。Hibernate 5 & JPA 2.2 支持 java.time。java.sql.*
从哪里获取 java.time 类?
ThreeTen-Extra 项目通过其他类扩展了 java.time。这个项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如Interval
,YearWeek
,YearQuarter
等。