我实际上使用了
Calendar calendar = Calendar.getInstance();
final String currentDate =
DateFormat.getDateInstance(DateFormat.FULL).format(calendar.getTime());
结果= 2019年3月27日星期三
我需要这个:27032019 没有,/或。 只有XXXXXXXX
谢谢
答案 0 :(得分:1)
使用SimpleDateFormat
:
Calendar date = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("ddMMyyyy");
System.out.println("Date : " + format.format(date.getTime()));;
答案 1 :(得分:1)
这是现代的答案和一些其他想法。
在大多数情况下,您不希望将日期格式设置为27032019
。它不容易被人阅读,也不建议进行序列化。
还要考虑不使用Calendar
,DateFormat
,SimpleDateFormat
或Date
。这些课程早已过时,设计欠佳。相反,您可以使用现代Java日期和时间API java.time。感觉好多了。
如果您需要日期字符串对计算机可读,例如用于JSON或存储在您或其他人需要从其读取的文本文件中,请使用标准ISO 8601格式。 LocalDate.toString
会产生这种格式,因此我们不需要任何显式的格式化程序:
final String currentDate
= LocalDate.now(ZoneId.of("Africa/Khartoum")).toString();
System.out.println(currentDate);
今天运行时的输出是:
2019-03-27
如果您坚持使用没有标点符号的紧凑格式,那么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
是的,java.time在较新和较旧的Android设备上均可正常运行。它只需要至少 Java 6 。
在(较旧的)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 6和7(JSR-310的ThreeTen)的反向端口。答案 2 :(得分:0)
那么您可以做的就是使用短格式并删除不必要的部分
final String currentDate =
DateFormat.getDateInstance(DateFormat.SHORT).format(calendar.getTime());
currentDate= currentDate.replace("/"", "");
答案 3 :(得分:-1)
尝试一下:
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
DateFormat dateFormat = new SimpleDateFormat("ddMMyyyy");
System.out.println(dateFormat.format(date));