0

データベースから取得した日付の形式を変更しようとしていますが、苦労しています。以下に関連するコードしかありません。

私はdateStr文字列であり、現在の形式はです。YYYY-MM-DD hh:mm:ss (2013-12-01 13:12:02)取得しようとしているのは ですdd MMM yy, HH:mm (1 Dec 13, 13:12)

私が試したことは次のとおりです。

        SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yy, HH:mm:ss");
        Date date = new Date(dateStr);
        String date_format = sdf.format(date);

上記は機能しません。同様の質問をしている他のユーザーから他の方法も試しましたが、通常は書式設定文字列だけを返します

また、上記の方法は、「コンストラクター Date(String) は非推奨です」と言うので、より良い方法があるかどうか疑問に思っています

完全なコードは次のとおりです。

    public void updateData(MessageInfo[] messages, FriendInfo[] friends,
        FriendInfo[] unApprovedFriends, String userKey) {
    this.setUserKey(userKey);
    // FriendController.
    MessageController.setMessagesInfo(messages);
    // Log.i("MESSAGEIMSERVICE","messages.length="+messages.length);
    int i = 0;
    while (i < messages.length) {

        //TODO this problem needs a fix
        String dateStr = messages[i].sentdt; 


        messageReceived(messages[i].userid, messages[i].messagetext, dateStr);
        i++;
    }

    FriendController.setFriendsInfo(friends);
    FriendController.setUnapprovedFriendsInfo(unApprovedFriends);
}
4

5 に答える 5

1

はい、もっと良い方法があります。データベースから日付をDate文字列ではなくとして取得します。解析する必要はありません。

java.sql.Date date = resultSet.getDate("column name");
String date_format = sdf.format(date);

コンストラクターは、文書化された形式の文字Date(String)列のみを解析します。

于 2013-11-11T08:14:19.577 に答える
0

この形式を参照してください。これは完全に使用されています

日付と時刻の形式

これ

日付と時刻の形式

于 2013-11-11T08:07:26.243 に答える
0

が2 つ 必要ですSimpleDateFormat。現在までの文字列を解析するためのもの ("YYYY-MM-DD hh:mm:ss"テンプレートを使用)

"dd MMM yy, HH:mm:ss"そして、すでに行ったことと同様に、日付を予想される文字列にフォーマットするための別のもの (を使用)。

SimpleDateFormat inputSdf = new SimpleDateFormat("YYYY-MM-DD hh:mm:ss");
Date date = inputSdf.parse(dateStr);
SimpleDateFormat outputSdf = new SimpleDateFormat("dd MMM yy, HH:mm:ss");
String date_format = sdf.format(date);
于 2013-11-11T08:03:02.530 に答える