次の形式の時間を含む文字列があります。
"hh:mm tt"
たとえば、現在の時刻を「7:04 PM」と表すことができます
これをユーザーのタイム ゾーンの現在の時刻と比較して、この時刻が現在の時刻よりも小さいか、等しいか、大きいかを確認するにはどうすればよいですか?
に変換でき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を返します。
次のコードは、@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);
}
}