Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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 将DateFormat设置为当前日期和时间_Java_Android_Date_Time - Fatal编程技术网

Java 将DateFormat设置为当前日期和时间

Java 将DateFormat设置为当前日期和时间,java,android,date,time,Java,Android,Date,Time,我使用java.text.DateFormat为我的应用程序的用户显示日期和时间。下面是我测试输出的代码 问题是日期显示为1970年(见下面的输出)。如何将其更新为当前日期和时间 电流输出: 1 Jan 1970 01:00:00 Time now = new Time(); now.setToNow(); String date= now.toString(); 20140722T133458Europe/London(2,202,3600,1,14060

我使用java.text.DateFormat为我的应用程序的用户显示日期和时间。下面是我测试输出的代码

问题是日期显示为1970年(见下面的输出)。如何将其更新为当前日期和时间

电流输出:

 1 Jan 1970 01:00:00
Time now = new Time();
        now.setToNow();
        String date= now.toString();
20140722T133458Europe/London(2,202,3600,1,1406032498)
当前代码:

DateFormat[] formats = new DateFormat[] {

        DateFormat.getDateTimeInstance(),

        };

        for (DateFormat df : formats) {

            Log.d("Dateformat", "Date format: " + (df.format(new Date(0))));
        }
或者,如果上述方法不可行,我可以使用以下方法获取当前时间和日期:

 1 Jan 1970 01:00:00
Time now = new Time();
        now.setToNow();
        String date= now.toString();
20140722T133458Europe/London(2,202,3600,1,1406032498)
输出:

 1 Jan 1970 01:00:00
Time now = new Time();
        now.setToNow();
        String date= now.toString();
20140722T133458Europe/London(2,202,3600,1,1406032498)
如何调整此值以使其对用户可读?

只需在第一段代码中写入
新日期()
,而不是
新日期(0)
。当你写
新日期(一些数字)
时,它会在
1/1/1970 00:00:00Z
之后生成一个数毫秒的日期,只需在第一段代码中写
新日期()
,而不是
新日期(0)
。当你写
新日期(一些数字)
时,它会在
1/1/1970 00:00:00Z
之后生成一个数毫秒的日期,只需在第一段代码中写
新日期()
,而不是
新日期(0)
。当你写
新日期(一些数字)
时,它会在
1/1/1970 00:00:00Z
之后生成一个数毫秒的日期,只需在第一段代码中写
新日期()
,而不是
新日期(0)
。当你写新的日期(一些数字)时,它会在
1/1/1970 00:00:00Z

之后生成一个数毫秒的日期

String S = new SimpleDateFormat("MM/dd/yyyy").format(System.currentTimeMillis());
使用此项—

String S = new SimpleDateFormat("MM/dd/yyyy").format(System.currentTimeMillis());
使用此项—

String S = new SimpleDateFormat("MM/dd/yyyy").format(System.currentTimeMillis());
使用此项—

String S = new SimpleDateFormat("MM/dd/yyyy").format(System.currentTimeMillis());
tl;博士
Instant
所接受的结果是正确的

但是要知道,您使用的是麻烦的旧日期时间类,现在已被java.time类取代

该类表示时间线上的一个时刻,分辨率为(小数点的九(9)位)

要根据标准生成表示该时刻格式的字符串,只需调用
toString

ZoneDateTime
要通过某个区域的透镜观察同一时刻,请应用a获得a

DateTimeFormatter
为了向用户演示,让java.time使用类自动本地化

要本地化,请指定:

  • 确定字符串的长度或缩写
  • 确定(a)用于翻译日名、月名等的人类语言,以及(b)决定缩写、大写、标点等问题的文化规范
例如:

Locale l = Locale.CANADA_FRENCH ; 
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( l );
String output = zdt.format( f );

关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到java.time

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

  • 后来
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 该项目专门针对Android采用了Three Ten Backport(如上所述)
该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,如、、和。

tl;博士
Instant
所接受的结果是正确的

但是要知道,您使用的是麻烦的旧日期时间类,现在已被java.time类取代

该类表示时间线上的一个时刻,分辨率为(小数点的九(9)位)

要根据标准生成表示该时刻格式的字符串,只需调用
toString

ZoneDateTime
要通过某个区域的透镜观察同一时刻,请应用a获得a

DateTimeFormatter
为了向用户演示,让java.time使用类自动本地化

要本地化,请指定:

  • 确定字符串的长度或缩写
  • 确定(a)用于翻译日名、月名等的人类语言,以及(b)决定缩写、大写、标点等问题的文化规范
例如:

Locale l = Locale.CANADA_FRENCH ; 
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( l );
String output = zdt.format( f );

关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到java.time

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

  • 后来
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 该项目专门针对Android采用了Three Ten Backport(如上所述)
该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,如、、和。

tl;博士
Instant
所接受的结果是正确的

但是要知道,您使用的是麻烦的旧日期时间类,现在已被java.time类取代

该类表示时间线上的一个时刻,分辨率为(小数点的九(9)位)

生成一个字符串表示