【问题标题】:how to parse Date formate? [duplicate]如何解析日期格式? [复制]
【发布时间】:2014-06-16 05:54:33
【问题描述】:

我想要系统的登录和注销时间

       Process uptimeProc = Runtime.getRuntime().exec("net stats srv");
       BufferedReader in = new BufferedReader(new inputStreamReader(uptimeProc.getInputStream()));

        String line;
        while ((line = in.readLine()) != null) 
        {
                if(line.contains("Statistics since"))
                {
                    SimpleDateFormat format = new SimpleDateFormat("'Statistics since' MM/dd/yyyy hh:mm:ss a");
                    //System.out.println("in  ijj  "+in.readLine());
                    Date boottime = format.parse(line);
                    System.out.println("Uptime="+uptime+""+boottime);

                    uptime = System.currentTimeMillis() - boottime.getTime();


                    break;

               }
        }

执行此代码后,它会抛出类似

的异常
Exception in thread "main" java.text.ParseException: Unparseable date: "Statistics since 6/16/2014 10:08 AM"
    at java.text.DateFormat.parse(DateFormat.java:337)
    at programs.GetLoginTimeYaar.getSystemUptime(GetLoginTimeYaar.java:44)
    at programs.GetLoginTimeYaar.main(GetLoginTimeYaar.java:14)

请回复

【问题讨论】:

标签: java


【解决方案1】:

您必须删除图案中的秒数:

new SimpleDateFormat("'Statistics since' MM/dd/yyyy hh:mm a");

【讨论】:

  • 我还建议将 MM 更改为 M 以匹配值的格式。您提供的格式会解析该值,但格式会有所不同。
【解决方案2】:

试试

new SimpleDateFormat("'Statistics since' MM/dd/yyyy hh:mm a");

因为您的日期不包含秒数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-26
    • 2015-12-26
    • 2010-11-03
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    相关资源
    最近更新 更多