Java Android日历/日期设置此格式XXXXXXXX

时间:2019-03-27 10:24:21

标签: java android calendar format

我实际上使用了

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

结果= 2019年3月27日星期三

我需要这个:27032019 没有,/或。 只有XXXXXXXX

谢谢

4 个答案:

答案 0 :(得分:1)

使用SimpleDateFormat

Calendar date = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("ddMMyyyy");
System.out.println("Date : " + format.format(date.getTime()));;

答案 1 :(得分:1)

这是现代的答案和一些其他想法。

在大多数情况下,您不希望将日期格式设置为27032019。它不容易被人阅读,也不建议进行序列化。

还要考虑不使用CalendarDateFormatSimpleDateFormatDate。这些课程早已过时,设计欠佳。相反,您可以使用现代Java日期和时间API java.time。感觉好多了。

使用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

更紧凑的ISO 8601格式

如果您坚持使用没有标点符号的紧凑格式,那么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设备上均可正常运行。它只需要至少 Java 6

  • 在Java 8和更高版本以及更新的Android设备(API级别26以上)中,内置了现代API。
  • 在Java 6和7中,获得了ThreeTen反向端口,这是现代类的反向端口(JSR 310的ThreeTen;请参见底部的链接)。
  • 在(较旧的)Android上,使用Android版本的ThreeTen Backport。叫做ThreeTenABP。并确保您使用子包从org.threeten.bp导入日期和时间类。我对以上代码段的导入是:

    import org.threeten.bp.LocalDate;
    import org.threeten.bp.ZoneId;
    import org.threeten.bp.format.DateTimeFormatter;
    

链接

答案 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));