繁体   English   中英

检查小时 Android 并做一些事情 Java

[英]Check Hour Android and do something Java

早上好,我想知道如何在 android 中做这样的事情。

if(6PM are already passed){
 //do somethin
}else{
//somethin else
}

提前致谢。

你可以这样做:

  1. 现代java.time API
LocalTime now = LocalTime.now(ZoneId.of("required timezone"));
if (now.getHour() >= 18) {
    //do something
} else {
    //do something else
}
  1. 旧版日历
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("Europe/Rome"));
int hour = calendar.get(Calendar.HOUR_OF_DAY);

请记住,使用旧版 API 很麻烦,容易出错并且通常不鼓励使用,它就是那么糟糕。 我建议研究如何进行 脱糖

要在低 Android 版本中轻松使用java.time ,您可以使用

1.三十ABP

将其放入您的build.gradle中:

implementation 'com.jakewharton.threetenabp:threetenabp:1.4.1'

然后在您的申请 class 中:

@Override
public void onCreate() {
  super.onCreate();
  AndroidThreeTen.init(this);
}

就这些,现在正常使用java.time

2.或者,按照他们的 github README 的建议,使用新的脱糖库

如果其他解决方案不适合您。 你可以试试这个

import java.util.Calendar;
import java.util.Date;

Date currentTime = Calendar.getInstance().getTime();
if(currentTime.getHours() >= 18){
     // Above 6pm
} else {
     // Below 6pm
}

使用这个 function,如果你想在之后使用日期,你可以扩展它:

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();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM