3

我有多个联系人的出生日期,并且都与移动设备同步。现在的问题是所有联系人都有不同的生日格式,我想以特定格式显示所有生日日期,例如“dd-MM-yyyy”。

因此,例如,一个同步联系人的生日如“1990-02-07”或“1988-06-15T22:00:00.000Z”或“12-02-1990”等......那么所有这些日期都应该显示以特定格式“dd-MM-yyyy”。

那么我该如何解决这个问题呢?

任何建议将不胜感激。

4

3 回答 3

19

只需使用 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

于 2012-11-28T14:30:05.517 回答
3

我不知何故明白你的问题就在这里。您可以尝试用“-”分割字符串并将其存储在数组中,然后检查数组中的每个字符串,将其解析为 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;
        }
    }
于 2012-11-28T15:31:39.010 回答
1
于 2018-03-26T19:19:50.337 回答