java - 将特定时间分配给日历

标签 java android calendar

我想测试转换为日历的字符串是在现在之前还是之后。 我不明白为什么这不起作用:

public final static SimpleDateFormat DATE_FORMAT_RESERVATION_HOUR = new SimpleDateFormat("HH:mm");    
String str = "14:00";

Calendar now = Calendar.getInstance();
Calendar selected = Calendar.getInstance();
//avoiding try/catch in this post
selected.set(Calendar.HOUR_OF_DAY, (int) DATE_FORMAT_RESERVATION_HOUR.parse(str).getTime());
// selected = now : 7352-05-18 00:49:33 (instead of 2013-06-17 14:00:00
Log.d("test", "after?" + selected.after(now));

我希望“选择”现在,但在 str 中指定小时。 欢迎任何帮助! 谢谢

最佳答案

I don't understand why this is not working:

getTime() :

Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Date object.

这不是您想要为所需结果设置 Calendar.HOUR_OF_DAY 的值。

  1. 您可以使用已弃用的 getHours()在你的情况下:

    selected.set(Calendar.HOUR_OF_DAY, 
               (int) DATE_FORMAT_RESERVATION_HOUR.parse(str).getHours());
    

<强>2。如果变量 str 始终采用该格式,那么您也可以这样做:

    selected.set(Calendar.HOUR_OF_DAY, Integer.parseInt(str.split(":")[0]));

关于java - 将特定时间分配给日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17147019/

相关文章:

java - 通用 map 中的 Jackson De/Serializing Date-to-String-to-Date

java - 从现有实例创建新实例

javascript - 将无效 javascript 格式的日期转换为 ics 标准日期时间字段

java - 如何用多个分隔符拆分字符串 - 并知道哪个分隔符匹配

java - 使用 JDBC 时,MySQL 中 Oracle 的 REF CURSOR 等效于什么?

android - Google Play Developer API - 为什么在用户执行重新订阅时找不到 linkedPurchaseToken?

java - XML 不会显示存储的 SQLite 数据

Android 无法在 Assets 文件夹中找到文件

java - WEEK_OF_YEAR 在不同机器上不一致

javascript - 类型错误 : Cannot read property 'setState' of null