Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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 Android-将日期格式更改为dd/mm/yy_Java_Android_Date_Date Format - Fatal编程技术网

Java Android-将日期格式更改为dd/mm/yy

Java Android-将日期格式更改为dd/mm/yy,java,android,date,date-format,Java,Android,Date,Date Format,我正在尝试获取当前日期,但格式为DD/MM/YY,但它给出了MM/DD/YY 关于如何修复它有什么建议吗?您可以使用SimpleDataFormat类: Calendar calendar = Calendar.getInstance(); String currentDate = DateFormat.getDateInstance(DateFormat.SHORT).format(calendar.getTime()); 我想你想改变日期格式 Calendar calendar = Cal

我正在尝试获取当前日期,但格式为DD/MM/YY,但它给出了MM/DD/YY
关于如何修复它有什么建议吗?

您可以使用
SimpleDataFormat
类:

Calendar calendar = Calendar.getInstance();
String currentDate = DateFormat.getDateInstance(DateFormat.SHORT).format(calendar.getTime());

我想你想改变日期格式

Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy");
String currentDate = sdf.format(calendar.getTime());
希望能有所帮助。

tl;博士 现代方法使用java.time类

避免遗留日期时间类 您正在使用可怕的日期时间类,这些类在几年前被JSR310中定义的现代java.time类所取代

java.time 对于仅限日期的值,如果没有时间和时区,请使用
LocalDate

需要时区来确定当前日期。在任何特定的时刻,日本的日期都可能是“明天”,而墨西哥的日期仍然是“昨天”

LocalDate
.now
(
    ZoneId.of( "Africa/Casablanca" )
)
.format
(
    DateTimeFormatter.ofPattern( "dd/MM/uu" )
)
使用标准ISO 8601格式的文本生成字符串

ZoneId z = ZoneId.of( "America/Montreal" ) ;
LocalDate ld = LocalDate.now( z ) ;
使用自定义格式的文本生成字符串

String output = ld.toString() ;

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

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

该项目现已启动,建议迁移到类

您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
java.sql.*
类。Hibernate5和JPA2.2支持java.time

从哪里获得java.time类

  • 、和更高版本-标准Java API的一部分,带有捆绑实现。
    • Java9添加了一些次要功能和修复
    • 大多数java.time功能都在中向后移植到Java6和Java7
    • 更高版本的Android捆绑包实现了java.time类
    • 对于早期的Android( 我正在尝试获取当前日期,但格式为DD/MM/YY

      不要。请相信用户最了解他或她的区域设置,并且Java中内置的区域设置数据最了解该区域设置的正确日期格式。虽然20年4月24日可能是适合您的区域设置的良好格式,但在其他区域设置的设备上,可能会首选不同的格式

      使用java.time,现代java日期和时间API:

      DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uu" ) ;
      String output = ld.format( f ) ;
      
      顺便说一句,在许多地方,包括意第绪语、加列根语、印度尼西亚语、乌兹别克语、塔吉克语、索马里语、马来语、意大利语和新西兰英语,输出将是您所说的您想要的:

      20年4月24日

      我建议您使用java.time进行约会工作。
      DateFormat
      是一个出了名的麻烦类,
      Calendar
      的设计也很糟糕。两者都已经过时很久了。使用java.time更好

      问:java.time不需要Android API级别26吗? java.time在较旧和较新的Android设备上都能很好地工作。它至少需要Java6

      • 在Java8和更高版本以及更新的Android设备上(API级别26),现代API是内置的
      • 在非androidjava6和7中,获取三个后端口,即现代类的后端口(三个十用于jsr310;请参见底部的链接)
      • 在(较旧的)Android上,使用Android版的ThreeTen Backport。它被称为ThreeTenABP。并确保您使用子包从
        org.ThreeTen.bp
        导入日期和时间类
      链接
      • 解释如何使用java.time
      • ,其中首先描述了
        java.time
      • ,java.time的后端口到Java6和Java7(JSR-310为三十)
      • ,Android版Three Ten Backport
      • ,解释得非常透彻

      你可以使用Android版本的日期和改变它的结构吗?作为一个考虑,扔掉长期过时和臭名昭著的麻烦代码< DateFormat < /Cord>类和朋友,并添加到Android项目中,以便使用JavaAtTimes,现代java日期和时间API。
      DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uu" ) ;
      String output = ld.format( f ) ;
      
          DateTimeFormatter dateFormatter
                  = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT);
          LocalDate d = LocalDate.now(ZoneId.systemDefault());
          System.out.println(d.format(dateFormatter));