Android:字符串中的日期格式

时间:2011-09-02 09:37:25

标签: java android string date format

由于这些日期的格式,我在排序日期时遇到问题。

我获得了日期:

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

我用这些值构建一个String。

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

问题在于,如果月份是例如2月,则mMonth值为2.因此,在我的列表中,有十月(10)之类的月份。

我需要的是像月和日这样的月和日形式。但我不知道怎么办。

编辑

我使用如上所述的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();

它有效。 感谢各位的帮助:)

5 个答案:

答案 0 :(得分:22)

这是将Date转换为String的简单方法:

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

String strDt = simpleDate.format(dt);

答案 1 :(得分:13)

 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”

答案 2 :(得分:4)

您需要对日期进行排序,而不是字符串。另外,你听说过DateFormat吗?它可以满足您的所有需求。

答案 3 :(得分:2)

这是日期格式的例子

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

答案 4 :(得分:0)

如果我理解你的问题,你就会创建一个日期列表,因为它们是字符串,它们按照字典顺序排列,这意味着你将在二月之前(10月2日之前)获得10月。

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