【问题标题】:How to Convert a negative milliseconds into correct timeZone in Java如何在Java中将负毫秒转换为正确的时区
【发布时间】:2013-09-24 07:30:34
【问题描述】:

我正在使用 Java 日期,我无法摆脱这个问题。 在我的文件中,时间值保存为 (HH:MM:SS)

00:00:08 下面是代码和输出..

  String timeinsec = "00:00:08";
  DateFormat df = new SimpleDateFormat("hh:mm:ss");
  Date time =  df.parse(timeinsec);

当我分配值和时间变量时发生了什么。 time.fastTime 变量显示 "-17992000"

当我将此值转换回 HH:MM:SS 时,它会显示给我。 "-4:-59:-51"

任何人都可以帮助解决 TimeZone 问题。 我当前的时区是 GMT+5

【问题讨论】:

  • 你能显示转换回来的模式吗
  • 您正在尝试将一天中的时间解析为完整日期。那是行不通的。

标签: java date time timezone


【解决方案1】:

试试这个;

int day = (int) TimeUnit.SECONDS.toDays(seconds);
long hours = TimeUnit.SECONDS.toHours(seconds) - (day * 24);
long minute = TimeUnit.SECONDS.toMinutes(seconds) - (TimeUnit.SECONDS.toHours(seconds) * 60);
long second = TimeUnit.SECONDS.toSeconds(seconds) - (TimeUnit.SECONDS.toMinutes(seconds) * 60);

【讨论】:

    【解决方案2】:

    这里是转换回来的代码:

    Date new_time = Time_array.get(0).time;  //-17992000 stored in "fastTime" variable
    long diff = ((long)new_time.getTime());  //TimeUnit.MILLISECONDS
    
    long diffSeconds = diff / 1000 % 60;
    long diffMinutes = diff / (60 * 1000) % 60;
    long diffHours = diff / (60 * 60 * 1000) % 24;
    String hms = String.format("%d:%02d:%02d", diffHours, diffMinutes, diffSeconds);
    

    在 dubug 中:hms 的值 = -4:-59:-51

    【讨论】:

      【解决方案3】:

      我尝试了各种方法,所以最后我写了这段代码,我的要求得到了满足。

      Calendar cal = Calendar.getInstance();
      String timeinsec = "00:00:08";
      DateFormat df = new SimpleDateFormat("hh:mm:ss");
      Date time =  df.parse(timeinsec);
      cal.setTime(time); 
      hms = String.format("%d:%02d:%02d", cal.get(Calendar.HOUR), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND));
      

      输出是:00:00:08

      【讨论】:

        【解决方案4】:

        hh 是 1~12。你应该使用 HH (0~23)

        String timeinsec = "00:00:08";
        DateFormat df = new SimpleDateFormat("HH:mm:ss");
        Date time =  df.parse(timeinsec);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-01-18
          • 2017-11-14
          • 2019-09-02
          • 2012-12-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多