Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将时间设置为划时代java?_Java_Android_Date_Time_Epoch - Fatal编程技术网

如何将时间设置为划时代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

我试图用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)));
注意你的时区,因为它会根据你默认的时区而变化

更新 在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" ) ) 
) ;