0

次の形式の時間を含む文字列があります。

"hh:mm tt"

たとえば、現在の時刻を「7:04 PM」と表すことができます

これをユーザーのタイム ゾーンの現在の時刻と比較して、この時刻が現在の時刻よりも小さいか、等しいか、大きいかを確認するにはどうすればよいですか?

4

2 に答える 2

3

に変換できStringますDate

String pattern = "<yourPattern>";
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
try {
 Date one = dateFormat.parse(<yourDate>);
 Date two = dateFormat.parse(<yourDate>);

}
catch (ParseException e) {}

比較可能なインターフェースを実装しているので、それらを比較できるはずですcompareTo()


編集: 忘れましたが、あなたはそれを知っていますが、確かにcompareToは-1、1、または0をone.compareTo(two)返すので、最初が2番目の前にあるときなどに-1を返します。

于 2012-05-24T00:20:18.873 に答える
3

次のコードは、@Sajmon の回答を詳しく説明しています。

public static void main(String[] args) throws ParseException {
    String currentTimeStr = "7:04 PM";

    Date userDate = new Date();
    String userDateWithoutTime = new SimpleDateFormat("yyyyMMdd").format(userDate);

    String currentDateStr = userDateWithoutTime + " " + currentTimeStr;
    Date currentDate = new SimpleDateFormat("yyyyMMdd h:mm a").parse(currentDateStr);

    if (userDate.compareTo(currentDate) >= 0) {
        System.out.println(userDate + " is greater than or equal to " + currentDate);
    } else {
        System.out.println(userDate + " is less than " + currentDate);
    }
}
于 2012-05-24T00:53:46.370 に答える