Java Android-将日期格式更改为dd/mm/yy
我正在尝试获取当前日期,但格式为DD/MM/YY,但它给出了MM/DD/YYJava 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
关于如何修复它有什么建议吗?您可以使用
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:
顺便说一句,在许多地方,包括意第绪语、加列根语、印度尼西亚语、乌兹别克语、塔吉克语、索马里语、马来语、意大利语和新西兰英语,输出将是您所说的您想要的: 20年4月24日 我建议您使用java.time进行约会工作。DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uu" ) ; String output = ld.format( f ) ;
是一个出了名的麻烦类,DateFormat
的设计也很糟糕。两者都已经过时很久了。使用java.time更好 问:java.time不需要Android API级别26吗? java.time在较旧和较新的Android设备上都能很好地工作。它至少需要Java6Calendar
- 在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
- ,解释得非常透彻
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));