3

生年月日を持つ複数の連絡先があり、すべてがモバイルデバイスと同期されています。ここで問題となるのは、すべての連絡先の誕生日の形式が異なるため、すべての誕生日の日付を「dd-MM-yyyy」などの特定の形式で表示したいということです。

たとえば、同期された1つの連絡先に、「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 に答える