无法在Java中将时间戳格式化为YYYY-MM-DD HH:mm:ss

时间:2018-12-13 19:41:55

标签: java timestamp simpledateformat

我有一个时间戳记2018年12月13日,我需要将其转换为2018-12-13 19:37:18,我正在按照以下步骤操作,但是它给出了错误的时间戳记

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8" />
   <meta id="viewport" content="width=device-width, initial-scale=1.0">
   <link rel="stylesheet" href="css/styles.css" />
</head>

<body>
   <header>
      <h1>Weather Report</h1>
   </header>

   <article>
      <h2>Weather Data</h2>

<table style="width:100%">
  <tr>
    <th><strong>City</strong></th>
    <th><strong>Coordinates</strong></th> 
  </tr>
  <tr>
    <td>Batavia, OH, US</td>
    <td>Latitude: 39.07859<br>
        Longitude: -84.17941</td>
  </tr>
  <tr>
    <td>Cincinnati, OH, US</td>
    <td>Latitude: 39.10713<br>
        Longitude: -84.50413</td>
  </tr>
  <tr>
    <td>John</td>
    <td>Doe</td>
  </tr>
</table>

        <form action="#" method="post" id="theForm" novalidate>
         <fieldset id="coordinateset">
            <label for="lat" id="latlabel">Latitude:</label>
            <input id="lat" type="number" />
            <label for="long" id="longlabel">Longitude:</label>
            <input id="long" type="number" />
         </fieldset><br><br>
         <fieldset id="resultset">
            <label for="location" id="locationlabel">Location:</label>
            <input id="location" type="text" readonly />
            <label for="temperature" id="temperaturelabel">Temperature:</label>
            <input id="temperature" type="text" readonly />
            <label for="windspeed" id="windspeedlabel">Wind Speed:</label>
            <input id="windspeed" type="text" readonly />
            <label for="condition" id="conditionlabel">Weather Condition:</label>
            <input id="condition" type="text" readonly />
         </fieldset>
         </form>
        <button id="btn">Submit Coordinates</button>
   </article>
   <script src="js/weather_report1.js"></script>
</body>
</html>

我得到的输出为2018年1月1日19:37:18,在格式化输出之前,是否需要将MMM转换为整数月份值?什么是获得预期输出的正确步骤?

1 个答案:

答案 0 :(得分:2)

D是“一年中的某天”;不是您实际需要的“每月”,因此d

Y是“星期”;我想您的意思是正常年份的y

因此,总而言之:

    DateFormat outputFormat = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
    DateFormat inputFormat = new SimpleDateFormat("dd MMM yyyy HH:mm:ss", Locale.US);

有关更多详细信息,请参见javadoc https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html