安卓:字符串中的日期格式

2022-09-01 18:04:28

由于这些日期的格式,我对日期进行排序有问题。

我得到的日期 :

final Calendar c = Calendar.getInstance();
    mYear = c.get(Calendar.YEAR);
    mMonth = c.get(Calendar.MONTH);
    mDay = c.get(Calendar.DAY_OF_MONTH);

我用这些值构建了一个字符串。

dateRappDB = (new StringBuilder()
   .append(mYear).append(".")
   .append(mMonth + 1).append(".")
   .append(mDay).append(" ")).toString();

问题是,如果月份是例如 2 月,则 mMonth 值为 2。因此,像10月(10)这样的月份的日期在我的列表中排在前面。

我需要的是月份和日期的格式像MM和dd。但是我不知道在我的情况下该怎么做。

编辑

如上所述,我通过使用DateFormat解决了这个问题。

我替换了这个:

dateRappDB = (new StringBuilder()
  .append(mYear).append(".")
  .append(mMonth + 1).append(".")
  .append(mDay).append(" ")).toString();

由此:

Date date = new Date(mYear - 1900, mMonth, mDay);
dateFacDB = DateFormat.format("yyyy.MM.dd", date).toString();

它的工作原理。感谢大家的帮助:)


答案 1

这是将日期转换为字符串的简单方法:

SimpleDateFormat simpleDate = new SimpleDateFormat("dd/MM/yyyy");

String strDt = simpleDate.format(dt);


答案 2
 Calendar calendar = Calendar.getInstance();
 Date now = calendar.getTime();   
 String timestamp = simpleDateFormat.format(now);

这些可能会派上用场

SimpleDateFormat simpleDateFormat = 
   new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ");

此格式等于 -->“2016-01-01T09:30:00.000000+01:00”

SimpleDateFormat simpleDateFormat = 
   new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ");

此格式等于 -->“2016-06-01T09:30:00+01:00”