如何将时间设置为划时代java?
我试图用java将时间设置为纪元日期时间。我该怎么做?这样我就可以从历元日期时间中提取年、月、日等。据我所知,您只想将其存储在某个变量中?所以使用如何将时间设置为划时代java?,java,android,date,time,epoch,Java,Android,Date,Time,Epoch,我试图用java将时间设置为纪元日期时间。我该怎么做?这样我就可以从历元日期时间中提取年、月、日等。据我所知,您只想将其存储在某个变量中?所以使用 日期历元=新日期(0)使用新日期(0L) SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss"); sdf.setTimeZone(TimeZone.getTimeZone("UTC")); System.out.println(sdf.format(new Date(0L
日期历元=新日期(0)代码>使用新日期(0L)强>
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println(sdf.format(new Date(0L)));
注意你的时区,因为它会根据你默认的时区而变化
更新
在Java8中,您可以使用新的java.time
库
你有一个常数Instant.EPOCH
试试这个
Calendar c = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
c.setTimeInMillis(0);
int day = c.get(Calendar.DATE);
int month = c.get(Calendar.MONTH) + 1;
int year = c.get(Calendar.YEAR);
tl;博士
使用java.time
包括date
和Calendar
在内的旧日期时间类现在是遗留的,被java.time类取代。大部分java.time功能都被移植到Android上(见下文)
要获取1970-01-01日期的日期值,请使用LocalDate
。该类表示一个仅限日期的值,不包含一天中的时间和时区
LocalDate epoch = LocalDate.ofEpochDay( 0L ) ;
时间:1970-01-01
要获取同一历元的日期时间值,请使用常量。该类表示时间线上的一个时刻,分辨率为(小数点的九(9)位)
epoch.toString():1970-01-01T00:00:00Z
该标准输出中的Z
是Zulu
的缩写,意思是
要获得此后的年、月、日数,请使用该类
有关句点的更多讨论和示例,请搜索堆栈溢出
关于java.time
该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&
该项目现已启动,建议迁移到类
要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是
从哪里获得java.time类
- 后来
- 内置的李>
- 标准JavaAPI的一部分,带有捆绑实现
- Java9添加了一些次要功能和修复
- 及
- 大部分java.time功能都在中向后移植到Java6和Java7
-
- 该项目专门为Android采用了ThreeTen Backport(如上所述)
- 看
新日期(0升);试试这个
LocalDate epoch = LocalDate.ofEpochDay( 0L ) ;
Instant epoch = Instant.EPOCH ;
Period period = Period.between(
LocalDate.ofEpochDay( 0 ) ,
LocalDate.now( ZoneId.of( "America/Montreal" ) )
) ;