我正在尝试使用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);
}
答案 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>