SimpleDateFormat返回错误的天数

古纳塞兰

我需要从长值中获取天数,小时数,分钟数和秒数。但是从下面的代码我得到错误的天数。

public static String formatTimeUTC(long value, String pattern) {
    final SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.US);
    format.setTimeZone(TimeZone.getTimeZone("UTC"));
    Date date = new Date(value);
    String formatString = format.format(date);
    return formatString;
}

当我通过106988550,并"dd:HH:mm:ss"以这种方法,我得到“02:05:43:08”

预期的实际答案是:“ 01:05:43:08”

我不知道哪里出了问题以及如何获得实际答案。

罗勒·布尔克

Hochschild答案是正确的。您正在将时间跨度设置为日期时间,喜欢将苹果与橙子混合。

java.time

java.time类取代了麻烦的旧日期时间类。使这项工作变得容易。

您实际上并没有解释,但我想您的数字是经过的毫秒数。

long input = 106_988_550L ;

我们将其表示为Duration

Duration d = Duration.ofMillis( input );

我们可以将该值表示为一个字符串,该字符串的格式为标准ISO 8601格式的子集,持续时间为PTnHnMnS

String output = d.toString();

PT29H43M8.55S

请参阅IdeOne.com上的实时代码

在Java 9和更高版本,可以通过调用访问该值的每个组件to…Part的方法,如toDaysParttoHoursPart等。


关于java.time

java.time框架是建立在Java 8和更高版本。这些类取代麻烦的老传统日期时间类,如java.util.DateCalendar,和SimpleDateFormat

现在处于维护模式Joda-Time项目建议迁移到java.time类。

要了解更多信息,请参见Oracle教程并在Stack Overflow中搜索许多示例和说明。规格为JSR 310

在哪里获取java.time类?

  • Java SE 8SE 9及更高版本
    • 内置的。
    • 标准Java API的一部分,具有捆绑的实现。
    • Java 9添加了一些次要功能和修复。
  • Java SE 6SE 7
    • 很多java.time功能都在ThreeTen- Backport中反向移植到Java 6和7
  • 安卓

ThreeTen-额外项目与其他类扩展java.time。该项目为将来可能在java.time中添加内容提供了一个试验场。你可能在这里找到一些有用的类,比如IntervalYearWeekYearQuarter,和更多

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SimpleDateFormat解析返回错误值

来自分类Dev

SimpleDateFormat解析返回错误的值

来自分类Dev

SimpleDateFormat返回错误的一天

来自分类Dev

SimpleDateFormat 使用 GMT + 6.5 返回错误值

来自分类Dev

PHP日期返回下周一剩余的天数错误

来自分类Dev

小时在美国服务器中使用simpledateformat返回错误

来自分类Dev

小时在美国服务器中使用simpledateformat返回错误

来自分类Dev

Excel:天数返回日期

来自分类Dev

返回到今天的天数

来自分类Dev

输出错误的天数

来自分类Dev

错误的天数 Excel

来自分类Dev

Android SimpleDateFormat解析错误

来自分类Dev

SimpleDateFormat给出API错误

来自分类Dev

SimpleDateFormat的产生错误的结果

来自分类Dev

Java SimpleDateFormat错误?

来自分类Dev

Android SimpleDateFormat解析错误

来自分类Dev

SimpleDateFormat 提供错误的年份

来自分类Dev

Android SimpleDateFormat在午夜至凌晨1点之间返回错误的时间

来自分类Dev

当小时为 12 时,SimpleDateFormat 转换日期错误返回值

来自分类Dev

Python,在一种特定情况下,计算两个日期之间的天数会返回错误的值

来自分类Dev

Android SimpleDateFormat'z'格式错误

来自分类Dev

Android SimpleDateFormat'z'格式错误

来自分类Dev

比较日期与今天的日期并返回天数

来自分类Dev

计算并返回一周中的天数

来自分类Dev

使用数组公式返回月份中的天数

来自分类Dev

返回基于匹配时间和天数的值

来自分类Dev

代码返回的日历天数不正确

来自分类Dev

jQuery:时间函数输出错误的天数

来自分类Dev

orderBy 正确排序天数但错误数月