由于这些日期的格式,我在排序日期时遇到问题。
我获得了日期:
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();
它有效。 感谢各位的帮助:)
答案 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月。
如果我是你,我会将结果存储在一个容器中,我控制插入点(如数组列表)或我可以控制排序算法。