安卓:将日期格式化为字符串

25

由于日期的格式问题,我在进行日期排序时遇到了问题。

我获得的日期是:

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();

问题是,如果月份是二月,mMonth值为2。因此,例如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();

它有效了。感谢你们所有人的帮助 :)


2
请尝试以下链接:https://dev59.com/_1rUa4cB1Zd3GeqPk47Fhttp://stackoverflow.com/questions/6705031/how-to-format-a-datehttps://dev59.com/iVjUa4cB1Zd3GeqPUL1X - Vineet Shukla
5个回答

38

这里有一种简单的将日期转换为字符串的方法:

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

String strDt = simpleDate.format(dt);


(注意:保留原始html标签)

22
 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"


8

以下是日期格式的示例:

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date date = new Date();

System.out.println("format 1 " + sdf.format(date));

sdf.applyPattern("E MMM dd yyyy");
System.out.println("format 2 " + sdf.format(date));

6
您需要排序的是日期而不是字符串。另外,您听说过 DateFormat 吗?它可以为您完成所有附加操作。

我赞同这个解决方案,除非出于某些未说的原因你真的需要使用那些字符串...但是ernazm说得很对:使用Android类 :D - Kheldar

1

如果我理解你的问题,你创建了一个日期列表,由于它们是字符串,它们按照字典顺序进行数字排序,这意味着你会在二月之前得到十月(10在2之前)。

如果我是你,我会将我的结果存储在一个容器中,在那里我可以控制插入点(比如数组列表)或者我可以控制排序算法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接