Java Android日历/日期格式此格式XXXXXXXX
我真的用这个Java Android日历/日期格式此格式XXXXXXXX,java,android,calendar,format,Java,Android,Calendar,Format,我真的用这个 Calendar calendar = Calendar.getInstance(); final String currentDate = DateFormat.getDateInstance(DateFormat.FULL).format(calendar.getTime()); 结果=2019年3月27日星期三 我需要这个:27032019 没有,/或。 只有XXXXXXXX 感谢您使用SimpleDataFormat: 试试这个: Calendar calend
Calendar calendar = Calendar.getInstance();
final String currentDate =
DateFormat.getDateInstance(DateFormat.FULL).format(calendar.getTime());
结果=2019年3月27日星期三
我需要这个:27032019
没有,/或。
只有XXXXXXXX
感谢您使用SimpleDataFormat:
试试这个:
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
DateFormat dateFormat = new SimpleDateFormat("ddMMyyyy");
System.out.println(dateFormat.format(date));
你能做的就是使用简短的格式,去掉不必要的部分
final String currentDate =
DateFormat.getDateInstance(DateFormat.SHORT).format(calendar.getTime());
currentDate= currentDate.replace("/"", "");
以下是现代的答案和一些额外的想法 在大多数情况下,您不希望将日期格式化为27032019。它不容易被人阅读,也不建议序列化
也不要考虑使用日历、DateFormat、SimuleDead格式或日期。这些课程早已过时,设计也很糟糕。相反,您可以使用java.time,即现代java日期和时间API。和你一起工作真是太好了
使用java.time和ThreeTenABP进行序列化 如果您需要日期字符串是机器可读的(例如,如果它是用于JSON或用于存储到文本文件中,您或其他人需要从中读回),请使用标准ISO 8601格式。LocalDate.toString生成此格式,因此我们不需要任何显式格式化程序: final String currentDate
= LocalDate.now(ZoneId.of("Africa/Khartoum")).toString();
System.out.println(currentDate);
今天运行时的输出为:
2019-03-27
压缩程序iso8601格式
如果您坚持不使用任何标点符号的紧凑格式,ISO 8601也提供:
final String currentDate = LocalDate.now(ZoneId.of("Africa/Khartoum"))
.format(DateTimeFormatter.BASIC_ISO_DATE);
20190327
你的格式
如果你真的坚持我不明白你为什么要这么做,java.time当然也可以生成你所要求的格式:
final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("ddMMuuuu");
final String currentDate = LocalDate.now(ZoneId.of("Africa/Khartoum"))
.format(dateFormatter);
27032019
问题:我可以在Android上使用java.time吗?
是的,java.time在较旧和较新的Android设备上运行良好。它至少需要Java6
在Java8和更高版本以及API级别为26的较新Android设备上,内置了现代API。
在Java6和Java7中,获取ThreeTen Backport,即JSR310的现代类ThreeTen的Backport;请参阅底部的链接。
在较旧的Android上,使用Android版本的ThreeTen Backport。它叫ThreeTenABP。并确保使用子包从org.threeten.bp导入日期和时间类。我为上述代码段导入的内容如下:
import org.threeten.bp.LocalDate;
import org.threeten.bp.ZoneId;
import org.threeten.bp.format.DateTimeFormatter;
链接
解释如何使用java.time。
,其中首次描述了java.time。
,java.time的后端口到JSR-310的Java6和Java7。
,Android版Three Ten Backport
,解释得非常透彻。
研究简化了格式。但我认为这应该是可行的:SimpleDataFormat=newSimpleDataFormatDmmyytry使用新的Java8时间api的LocalDate。现在过时了。作为一个考虑,抛开长期过时和臭名昭著的麻烦DateFormat和朋友,并添加到Android项目中,以便使用JavaTime-现代java日期和时间API。和你一起工作真是太好了。LocalDate.nowyourTimeZone.formatDateTimeFormatter.OfPatternDdmmuuu.您需要27032019做什么?它不容易被人阅读,也不建议对后者进行序列化,而是使用格式:2019-03-27。在en US语言环境中,这给出了32719。它可能在某些地区工作,但结果因地区而异。
import org.threeten.bp.LocalDate;
import org.threeten.bp.ZoneId;
import org.threeten.bp.format.DateTimeFormatter;