早上好,我想知道如何在android中做这样的事情。
if(6PM are already passed){
//do somethin
}else{
//somethin else
}
提前谢谢。
您可以这样做:
-
现代
java.time
API
LocalTime now = LocalTime.now(ZoneId.of("required timezone"));
if (now.getHour() >= 18) {
//do something
} else {
//do something else
}
- 传统日历
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("Europe/Rome"));
int hour = calendar.get(Calendar.HOUR_OF_DAY);
请记住,使用传统的API是麻烦的,容易出错,而且通常不鼓励,它就是那么糟糕。我建议你研究一下如何减额。
要在低安卓版本中轻松使用java.time
,可以使用
1.ThreeTenABP
将此放入您的build.gradle
:
implementation 'com.jakewharton.threetenabp:threetenabp:1.4.1'
然后在应用程序类中:
@Override
public void onCreate() {
super.onCreate();
AndroidThreeTen.init(this);
}
仅此而已,现在正常使用java.time
。
2。或者,正如他们的github自述所建议的,使用新的降级库
使用此函数,如果您想在之后使用日期来扩展它
public static void checkTimings() {
String pattern = "HH:mm";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
try {
Date date1 = sdf.parse(Calendar.getInstance().get(Calendar.HOUR_OF_DAY) + ":" + Calendar.getInstance().get(Calendar.MINUTE));
Date date2 = sdf.parse("18:00");
if (date1.before(date2)){
//before 6pm
} else {
//after 6pm
}
} catch (ParseException e) {
e.printStackTrace();
}
}
如果其他解决方案不适合您。你可以试试这个
import java.util.Calendar;
import java.util.Date;
Date currentTime = Calendar.getInstance().getTime();
if(currentTime.getHours() >= 18){
// Above 6pm
} else {
// Below 6pm
}