【问题标题】:How to convert python time to java date [duplicate]如何将python时间转换为java日期[重复]
【发布时间】:2015-01-02 16:28:59
【问题描述】:

我在字符串中有一个类似1418572798.498 格式的python 日期。 在 Java 中,日期的格式类似于 1418572798498

如何将此字符串转换为 Java 日期? 是否有任何第三方库可用于转换?

【问题讨论】:

  • 这不是“python 时间”,顺便说一句。那是 Unix/POSIX 时间(自 1970-01-01 00:00:00 以来的秒数)。 “Java 时间”是相同的,但以微秒为单位:-P
  • 您只需将字符串转换为浮点数,然后将该数字乘以 1000
  • @RicardoCárdenes 不,不是微秒。 java.util.Date 类使用自纪元以来的毫秒数,Joda-Time 库也是如此。 Java 8 (JSR 310) 中的新 java.time 包从纪元开始使用纳秒。某些数据库(例如 Postgres)自纪元以来使用微秒。见this diagram
  • 对不起,毫秒。那是个脑残。
  • @davidzhao 发帖前请搜索 StackOveflow。这个问题已被解决很多次次。

标签: java python time


【解决方案1】:

尝试类似:

String number = "1418572798.498";
long d = Long.parseLong(number.replace(".", ""));
System.out.println(d + " " + new Date(d));
Output:
1418572798498 Sun Dec 14 21:29:58 IST 2014

【讨论】:

  • 它的工作,但不是 rubust,thans
  • 不健壮是什么意思?我会尝试修改..
  • 谢谢,我想我需要改变收入。
【解决方案2】:

这样做:

float time = Float.parseFloat(string);
long actual_time = (int)(time*1000);
Date d = new Date(actual_time);

【讨论】:

  • Integer.parseInt 将为 OP 给出的字符串抛出 NumberFormatException。我认为应该使用浮点数或双精度...
  • @davidzhao 现在应该可以了。
【解决方案3】:

去掉小数点并将其转换为浮点数。

【讨论】:

    猜你喜欢
    • 2014-08-06
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 2012-09-22
    • 2016-09-14
    • 1970-01-01
    相关资源
    最近更新 更多