我有多个联系人的出生日期,并且都与移动设备同步。现在的问题是所有联系人都有不同的生日格式,我想以特定格式显示所有生日日期,例如“dd-MM-yyyy”。
因此,例如,一个同步联系人的生日如“1990-02-07”或“1988-06-15T22:00:00.000Z”或“12-02-1990”等......那么所有这些日期都应该显示以特定格式“dd-MM-yyyy”。
那么我该如何解决这个问题呢?
任何建议将不胜感激。
我有多个联系人的出生日期,并且都与移动设备同步。现在的问题是所有联系人都有不同的生日格式,我想以特定格式显示所有生日日期,例如“dd-MM-yyyy”。
因此,例如,一个同步联系人的生日如“1990-02-07”或“1988-06-15T22:00:00.000Z”或“12-02-1990”等......那么所有这些日期都应该显示以特定格式“dd-MM-yyyy”。
那么我该如何解决这个问题呢?
任何建议将不胜感激。
只需使用 SimpleDateFormat 类。就像是:
Date d = Calendar.getInstance().getTime(); // Current time
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); // Set your date format
String currentData = sdf.format(d); // Get Date String according to date format
在这里您可以查看详细信息和所有支持的格式:
http://developer.android.com/reference/java/text/SimpleDateFormat.html
我不知何故明白你的问题就在这里。您可以尝试用“-”分割字符串并将其存储在数组中,然后检查数组中的每个字符串,将其解析为 int 然后执行条件语句。
假设您提供的格式如下: "1990-02-07" year-month-day "1988-06-15T22:00:00.000Z" year-month-dayTtimeZ "12-02-1990" month-day-年
你可以尝试这样的事情。
public String convert(String s){
SimpleDateFormat newformat = new SimpleDateFormat("dd-MM-yyyy");
try{
if(s.contains("T")){
String datestring = s.split("T")[0];
SimpleDateFormat oldformat = new SimpleDateFormat("yyyy-MM-dd");
String reformattedStr = newformat.format(oldformat.parse(datestring));
return reformattedStr;
}
else{
if(Integer.parseInt(s.split("-")[0])>13){
SimpleDateFormat oldformat = new SimpleDateFormat("yyyy-MM-dd");
String reformattedStr = newformat.format(oldformat.parse(s));
return reformattedStr;
}
else{
SimpleDateFormat oldformat = new SimpleDateFormat("MM-dd-yyyy");
String reformattedStr = newformat.format(oldformat.parse(s));
return reformattedStr;
}
}
}
catch (Exception e){
return null;
}
}