Java 如何计算当前系统时间和存储时间间隔
我想计算当前系统时间并存储时间间隔。我正在应用程序中使用admob。当用户点击广告时,我想将当前时间存储在Java 如何计算当前系统时间和存储时间间隔,java,android,datetime,admob,Java,Android,Datetime,Admob,我想计算当前系统时间并存储时间间隔。我正在应用程序中使用admob。当用户点击广告时,我想将当前时间存储在SharedReferences中,下一个广告应在10分钟后显示 那么如何计算存储在SharedReferences中的时间与当前系统时间之间的间隔呢 这是我的密码 interstitialAd.setAdListener(new AdListener() { @Override public void onAdClosed() { super.on
SharedReferences
中,下一个广告应在10分钟后显示
那么如何计算存储在SharedReferences
中的时间与当前系统时间之间的间隔呢
这是我的密码
interstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
super.onAdClosed();
startActivity(intent);
interstitialAd.loadAd(new AdRequest.Builder().build());
}
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
Toast.makeText(Chapters.this, "loaded", Toast.LENGTH_SHORT).show();
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdOpened() {
// Code to be executed when the ad is displayed.
}
@Override
public void onAdClicked() {
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
// Find todays date
String currentDateTime = dateFormat.format(new Date());
sharedPreferences=getSharedPreferences("TimeStamp",MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();
editor.putString("currenttime",currentDateTime);
editor.commit();
}
@Override
public void onAdLeftApplication() {
// Code to be executed when the user has left the app.
}
}
您正在使用可怕的日期时间类,这些类在几年前被JSR310中定义的现代java.time类所取代 问题: 当用户点击广告时,我想在SharedReferences中存储当前时间 将中的当前时刻捕捉为对象 生成标准格式的字符串 2019-07-06T04:21:11.091261Z 为了简单起见,您可能希望将其设置为零
Instant instant = Instant.now().truncatedTo( ChronoUnit.SECONDS ) ;
将此字符串写入存储器
问题:
计算存储在SharedReferences中的时间与当前系统时间之间的间隔
检索存储的字符串。作为即时对象进行分析
Instant instant = Instant.parse( input ) ;
使用类计算经过的时间
精神检查
Boolean movingForwardInTime = ( ! d.isNegative() ) && ( ! d.isZero() ) ;
if ( ! movingForwardInTime ) { … }
测试是否超过我们的限制
Duration limit = Duration.ofMinutes( 10 ) ;
Boolean expired = ( d.compareTo( limit ) > 0 ) ;
关于java.time
该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&
要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是
该项目现已启动,建议迁移到类
您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要java.sql.*
类
从哪里获得java.time类
- 、和更高版本-标准Java API的一部分,带有捆绑实现。
- Java9添加了一些次要功能和修复
- 及
- 大多数java.time功能都在中向后移植到Java6和Java7
-
- 更高版本的Android捆绑包实现了java.time类
- 对于早期的Android(我已经对你的问题进行了实质性的重新表述,以简化它并使其更易于理解。如果你认为当前状态不代表你想问的问题,请随时回复更改
Duration d = Duration.between( instant , Instant.now() ) ;
Boolean movingForwardInTime = ( ! d.isNegative() ) && ( ! d.isZero() ) ;
if ( ! movingForwardInTime ) { … }
Duration limit = Duration.ofMinutes( 10 ) ;
Boolean expired = ( d.compareTo( limit ) > 0 ) ;