【问题标题】:Convert Date String to Date form [duplicate]将日期字符串转换为日期形式 [重复]
【发布时间】:2013-12-27 12:14:53
【问题描述】:

我有这个字符串,我想将它转换为日期格式,例如 2013-06-06

 "/Date(1370257470183+0530)/"

如果有人有想法,如何以编程方式执行此操作,请帮助我

问候。

【问题讨论】:

  • + 表示什么?
  • 我认为 +0530 表示格林威治标准时间
  • here

标签: java string date


【解决方案1】:
public static void main(String[] args) {
    String dateString = "/Date(1370257470183+0530)/";

    String longString = dateString.substring(6, dateString.indexOf('+'));
    String gmtString = dateString.substring(dateString.indexOf('+'), dateString.indexOf(')'));

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    format.setTimeZone(TimeZone.getTimeZone(gmtString));
    Date date = new Date(Long.parseLong(longString));
    System.out.println(format.format(date));

}
  • 通过获取子字符串提取数值
  • 提取 GMT 字符串
  • 创建SimpleDateFormat
  • 使用 GMT 字符串格式化时区
  • 从第一个字符串创建一个 Date 对象
  • 将日期传递给格式化程序(返回字符串)
  • 用返回的字符串做点什么

【讨论】:

    【解决方案2】:

    这是我编写的代码。但在此之前,您必须提取时区和毫秒时间,以便您可以创建对象。我认为你可以对字符串做一些字符串操作。

    Date date = new Date(1370257470183l); // here is your time
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    formatter.setTimeZone(TimeZone.getTimeZone("GMT+0530"));   // here is your timezone
    String formattedDate = formatter.format(date);
    System.out.println(formattedDate);
    

    【讨论】:

      【解决方案3】:

      您可以使用java.util.Date 类,然后使用SimpleDateFormat 来格式化日期。

      Date date=new Date(millis);
      

      参考:How to convert currentTimeMillis to a date in Java?

      输入表示从纪元开始的时间(以毫秒为单位)(格林威治标准时间 1970 年 1 月 1 日) 顺便说一句,您输入的日期是 2013 年 6 月 3 日

      【讨论】:

        【解决方案4】:

        首先,您必须在字符串中搜索数值,链接在这里: Search a String for Numerics

        然后你想把数值变成日期。为此使用 SimpleDateFormat”链接:Oracle SimpleDateFormat

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-23
          • 2015-10-01
          • 2016-02-28
          • 2011-06-08
          相关资源
          最近更新 更多