在Java中遇到SimpleDateFormat解析方法中的问题

时间:2015-06-14 11:29:49

标签: java eclipse parsing date datetime

我正在尝试使用SimpleDateFormat.parse方法将日期字符串解析为Date对象,但它省略了" T"在返回的最后日期。我传递了这个日期字符串2015-04-15T12:55:07.365,我在输出中得到2015-04-15 12:55:07.365。但是,所需的输出为2015-04-15T12:55:07.365

为什么" T"在此行中省略的最终输出 parsedDate = sdf.parse(transDate);

public static void main(String[] args) 
{

    try 
    {
        final String pattern = "yyyy-MM-dd'T'hh:mm:ss.SSS";  // example 2015-04-15T12:55:07.365
        final SimpleDateFormat sdf = new SimpleDateFormat(pattern);

        String transDate = "2015-04-15T12:55:07.365";
        Date parsedDate = sdf.parse(transDate);

        System.out.println("transDate:"+transDate+", parsedDate: "+parsedDate);
    } 

3 个答案:

答案 0 :(得分:2)

您永远无法获得所需的输出2015-04-15T12:55:07.365

<强>为什么吗

因为你正在打印Date对象parsedDate。日期类有它自己的toString()方法实现。当你打印日期对象时,它意味着它基本上打印了toString()方法的实现格式

请参阅Java doc了解详情

答案 1 :(得分:2)

System.out.println(parsedDate)会给你Wed Apr 15 00:55:07 GMT 2015这是日期对象的toString()表示。

您可以使用SimpleDateFormat来解析和格式化日期:

SimpleDateFormat sdfParser = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS");
Date date = sdfParser.parse("2015-04-15T12:55:07.365");

SimpleDateFormat sdfFormatter = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS");
String formattedDate = sdfFormatter.format(date);

System.out.println(formattedDate);
// 2015-04-15T12:55:07.365

答案 2 :(得分:0)

您将在此获得所需的输出。

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Text Box</title>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
    <script>
        angular.module('controllerAsExample', []).controller('SettingsController1', function ($scope)
        {
            $scope.comboBox = []
            $scope.addDropDown = function ()
            {
                $scope.comboBox.push('');
            }
            $scope.deleteDropDown = function (index)
            {
                $scope.comboBox.splice(index, 1);
            }
        });
    </script>
</head>
<body ng-app="controllerAsExample">
    <div id="ctrl-as-exmpl" ng-controller="SettingsController1">
        <input type="text" ng-repeat="dropDown in comboBox track by $index" />
        <select ng-model="newValue" ng-options="n in n[]"></select>
        <input type="submit" ng-submit="addDropDown()" value="Add" />
        <input type="submit" ng-submit="deleteDropDown()" value="Delete" />
    </div>
</body>