致力于联系生日和周年庆典:
我得到的详细信息和生日就像这个12.2.2012或12/2/2012或12-02-2012或2/12/12
问题:
所有三星手机的日期格式是否相同。如果是,日期格式是什么。
(猜猜不适用于所有Android手机,因为生日日期以多种不同格式存储)
如何识别日期格式,如日期为2012年2月12日或2012年2月12日或任何其他日期字符串模式。是格式“yyyy-MM-dd”还是“MMM dd,yyyy”或其他? 例如:如果日期是“2012年2月12日”,则日期格式为“MMM dd yyyy”
答案 0 :(得分:3)
不幸的是,似乎不同的应用/供应商使用不同的格式。我的解决方案是尝试解析不同的格式,直到找到正确的格式或放弃。
以下是一些示例代码:
public static final SimpleDateFormat[] birthdayFormats = {
new SimpleDateFormat("yyyy-MM-dd"),
new SimpleDateFormat("yyyyMMdd"),
new SimpleDateFormat("yyyy.MM.dd"),
new SimpleDateFormat("yy-MM-dd"),,
new SimpleDateFormat("yyMMdd"),
new SimpleDateFormat("yy.MM.dd")
new SimpleDateFormat("yy/MM/dd"),
new SimpleDateFormat("MM-dd"),
new SimpleDateFormat("MMdd"),
new SimpleDateFormat("MM/dd"),
new SimpleDateFormat("MM.dd"),
};
.....
Date birthday = null;
for (SimpleDateFormat f : birthdayFormats) {
try {
birthday = f.parse(birthdaystr);
if (birthday!=null) {
contact.setBirthday(birthday);
break;
}
} catch (Exception e) {
continue;
}
}
答案 1 :(得分:2)
使用DateFormat.getDateInstance(int style, Locale locale)
而不是使用SimpleDateFormat创建自己的模式。
您希望在String中获取日期并在下面的代码中传递后的另一种方式
String dateStr = "04/05/2010";
SimpleDateFormat curFormater = new SimpleDateFormat("dd/MM/yyyy");
Date dateObj = curFormater.parse(dateStr);
SimpleDateFormat postFormater = new SimpleDateFormat("MMMM dd, yyyy");
String newDateStr = postFormater.format(dateObj);
答案 2 :(得分:0)
日期存储为“YYYY-MM-DD”。
使用日期格式化程序类将其转换为您需要的任何格式。
如果您想要更新,请使用与您阅读时相同的格式。