gpt4 book ai didi

java - 将日期与当前日期进行比较会导致 NumberFormatException

转载 作者:行者123 更新时间:2023-12-01 18:44:25 24 4
gpt4 key购买 nike

我正在尝试将日期/时间(我保存在 SharedPreferences 中)与当前日期/时间进行比较。

通过这个,我可以检查服务上次运行的时间,以及是否有必要再次运行。

我正在将当前日期转换为整数。但后来我得到一个错误:错误:

08-27 17:21:40.930: W/System.err(26577): java.lang.NumberFormatException: Invalid int: "201308271721"

完整错误:

08-27 17:21:40.930: W/System.err(26577): java.lang.NumberFormatException: Invalid int: "201308271721" 08-27 17:21:40.960: W/System.err(26577): at java.lang.Integer.invalidInt(Integer.java:138) 08-27 17:21:40.960: W/System.err(26577): at java.lang.Integer.parse(Integer.java:378) 08-27 17:21:40.960: W/System.err(26577): at java.lang.Integer.parseInt(Integer.java:366) 08-27 17:21:40.960: W/System.err(26577): at java.lang.Integer.parseInt(Integer.java:332) 08-27 17:21:40.960: W/System.err(26577): at xxx.xxx.RoosterSync.onHandleIntent(RoosterSync.java:118) 08-27 17:21:40.960: W/System.err(26577): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65) 08-27 17:21:40.960: W/System.err(26577): at android.os.Handler.dispatchMessage(Handler.java:99) 08-27 17:21:40.960: W/System.err(26577): at android.os.Looper.loop(Looper.java:137) 08-27 17:21:40.960: W/System.err(26577): at android.os.HandlerThread.run(HandlerThread.java:60)

我正在使用的(和平)代码:

Date now = new Date();
String nowAsString = new SimpleDateFormat("yyyyMMddHHmm").format(now);
dayNow= Integer.parseInt(nowAsString);

是否可以将日期字符串转换为整数?

或者我做了一些愚蠢的事情,有更简单的方法吗?

最佳答案

该值对于 32 位整数来说太长。请尝试使用 long 来代替。

参见http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html对于类型限制。

一个相关的问题是为什么要以这种格式存储日期时间。 UNIX 时间戳(顺便说一句,也绝对应该是long)更方便存储和操作 - 请参阅 Calendar.getTimeInMillis。

这是一种可以轻松进行日期比较和存储的格式。

关于java - 将日期与当前日期进行比较会导致 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18470030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com