java - 简单日期格式解析日期时出错

标签 java android datetime simpledateformat

我对简单日期格式有疑问,我不知道为什么。 这是我的算法

if (realtimeDeparture != null) {
        int hours = this.realtimeDeparture / 3600;
        int minutes = (this.realtimeDeparture % 3600) / 60;
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
        try {
            Calendar cal = Calendar.getInstance(Locale.FRENCH);
            String date = cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH)+1)+ "-" + cal.get(Calendar.DAY_OF_MONTH)+ " " + hours+":"+minutes;
            result = df.parse(date);
}

我有一个 API,它可以给我 00h00 后的秒数(实时出发) 我想从这个整数中提取一个真正的日期对象 所以我做了这个算法,但我失去了时间,我不知道为什么。

例如,有一些输入和结果值:

date = 2018-5-7 12:26
result = Mon May 07 00:26:00 GMT+02:00 2018

我尝试检查 07/05/2018 是否与 7/5/2018 不同,但问题相同:

date = 2018-05-07 12:26 
result = Mon May 07 00:26:00 GMT+02:00 2018

如何从 00h00 开始的秒数获取日期对象? 或者我如何修复我的算法?

最佳答案

您的计算对我来说看起来不错,所以我猜测问题在于格式。

您尝试过使用

cal.set(Calendar.HOUR_OF_DAY, hours);
cal.set(Calendar.MINUTE, minutes);

然后获取日期

Date date = cal.getTime();

关于java - 简单日期格式解析日期时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50212208/

相关文章:

java - 在随机位置用固定数量的宝藏填充二维字符数组

android - 如何以编程方式退出android应用程序

java - 如何在调整大小时设置不同的小部件图标

android - 设置父 View 可见性对其 subview 的影响

sql - 将 getdate() 转换为 EST

javascript - 为什么 "2016-02-16"不等于 "2016-02-16 00:00"?

java - 为什么 java 中的 processBuilder 在 5 分钟后挂起?

java - 在java中声明一个对象数组(包括代码)?

java - Google Speech API 中口语的语言代码检测

php - 为什么 PHP date() 函数会给出不一致的时间?突然关闭 2 小时