【问题标题】:convert millisecond to Joda Date Time or for zone 0000将毫秒转换为 Joda 日期时间或区域 0000
【发布时间】:2015-06-08 21:26:47
【问题描述】:

请告诉我如何将毫秒转换为 joda 日期时间??

formatter = DateTimeFormat.forPattern("dd/MM/yyyy'T'HH:mm:ss").withZone(DateTimeZone.forOffsetHoursMinutes(00, 00));

尝试过

String millisecond="14235453511"
DateTime.parse(millisecond);

【问题讨论】:

    标签: android jodatime


    【解决方案1】:

    @Adam S 给出的答案几乎可以。但是,我更愿意明确指定时区。如果不指定它,您将在系统时区中获得构造的DateTime-instance。但是您想要区域“0000”(UTC)吗?然后寻找这个替代constructor

    String milliseconds = "14235453511";
    DateTime someDate = new DateTime(Long.valueOf(milliseconds), DateTimeZone.UTC);
    System.out.println(someDate); // 1970-06-14T18:17:33.511Z
    

    【讨论】:

    • 我只想要 0000 区域的时间,它给了我 +5:30 的时间
    • @vaibhav 您如何得出结论认为我的建议产生了时区偏移 +5:30?我已经测试了我的代码,你可以看到上面的输出:DateTime 的新构造实例在 "Z" (=UTC =+00:00) 上。
    • 我想要毫秒给我区域时间!!它给了我印度时间
    • @vaibhav 我的问题仍然存在,您如何得出结论?输出为:“1970-06-14T18:17:33.511Z” 这不是印度时间,而是 UTC 时间。请尝试显示更多代码,让您认为我的建议会产生印度时间。
    • 不,是我的错!!它给了UTC时间!你是仪式!
    【解决方案2】:

    a constructor that takes milliseconds:

    long milliseconds = 14235453511;
    DateTime someDate = new DateTime(milliseconds);
    

    【讨论】:

      【解决方案3】:

      你可以用这个

      Calendar calendar = new GregorianCalendar();
      
              DateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm:ss z");
      
              formatter.setCalendar(calendar);
              String timeZone = "GMT+2:00";
              formatter.setTimeZone(TimeZone.getTimeZone(timeZone));
      
              String time = formatter.format(calendar.getTime());
      
              System.out.println(time);
      

      希望对你有帮助

      【讨论】:

      • 这篇文章没有回答关于 Joda DateTime 的问题
      猜你喜欢
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多