【问题标题】:JSON date to formatted JAVA date [duplicate]JSON日期到格式化的JAVA日期[重复]
【发布时间】:2016-09-23 16:57:00
【问题描述】:

我试图从 1436536800 获取 dd.MM.yyyy 和 hh:mm 但只有时间正确,日期完全错误。我真的不明白这应该如何工作

int dt = time.getInt("start")*1000;
Date date = new Date(dt);
startDate = dateFormat.format(date);

【问题讨论】:

  • 数值是时间戳?您期望获得的日期是什么时候?转换后,它给出了 Fri, 10 Jul 2015 14:00:00 GMT
  • 我建议使用 Joda Time。 1436536800 是 UTC 时间 2015 年 7 月 10 日星期五 14:00:00 (pm),Joda Time 可以轻松处理时区。
  • 请在发帖前彻底搜索 Stack Overflow。

标签: java json date


【解决方案1】:

如果 time.getInt("start") 是有效的 unix 时间戳,则必须将“000”添加到数字中。示例:1436536800 * 1000 = 1436536800000。然后可以使用时间戳获取日期:

final Date date = new Date(Long.parseLong("1436536800000"));
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy hh:mm");
System.out.println(sdf.format(date));

控制台退出:10.07.2015 09:00

【讨论】:

  • 这正是我正在做的事情,我得到了 1970 年 1 月 24 日星期六 09.28
  • 在 unix 中,这是一个有效的时间戳:1436536800。在 java 中,您必须添加“000”。所以java中正确的时间戳是:1436536800000。在调用new Date()之前在cosole中打印ts。
  • 这不正是我在这一行所做的吗? int dt = time.getInt("开始")*1000;
  • 好吧,应该是 getLong,而不是 getInt……这就是问题所在。
【解决方案2】:

假设时间是正确的,很可能是您乘以 1,000。以您的方式创建日期时,需要几毫秒。您的输入是否可能已经以毫秒为单位? (如果是这样,您当前的方法将减少约 2 分钟)

【讨论】:

    【解决方案3】:
    Date date=new Date(1436536800);
    SimpleDateFormat df2 = new SimpleDateFormat("dd.MM.yyyy");
    String dateText = df2.format(date);
    

    【讨论】:

      【解决方案4】:

      你得到的日期是一个 JSON 字符串值。请按照以下步骤正确格式化。

      首先下载 Moment.js 文件并将其添加到您的项目中。

      var date1 = "1436536800"; // your long value contain in this variable.
      var date2 = moment(date1).format(MMMM Do YYYY);//It will give you formatted date value.
      

      在下面查看更多格式

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-29
        • 2021-03-06
        • 2013-01-31
        • 1970-01-01
        • 2020-12-03
        相关资源
        最近更新 更多