【问题标题】:Changing the date format from mm/dd/yyyy [duplicate]从 mm/dd/yyyy 更改日期格式 [重复]
【发布时间】:2015-04-27 05:01:03
【问题描述】:

我需要将日期格式从 2015-04-08 更改为 08-APR-2015。 它来自 grails gsp 前端。 在调用 oracle 包之前,我需要更改 java 中的格式。 怎么做。

【问题讨论】:

  • 您想在客户端(javascript)还是服务器端(java)格式化日期?因为您在标记 javascript 时在问题中提到了 java?

标签: java date-format simpledateformat


【解决方案1】:

我使用 SimpleDateFormat 更改日期格式。试试这个:

String OLD_FORMAT = "yyyy-MM-dd";
String NEW_FORMAT = "dd-MMM-yyyy";

String oldDateString = "2015-04-08";
String newDateString;

SimpleDateFormat sdf = new SimpleDateFormat(OLD_FORMAT);
Date d = sdf.parse(oldDateString);
sdf.applyPattern(NEW_FORMAT);
newDateString = sdf.format(d);

【讨论】:

  • 使用 sdf.applyPattern(NEW_FORMAT) 完成了 rtrick。我错过了这条线。谢谢
【解决方案2】:

您在回答中提到了 Java,但您标记了 JavaScript 我已经编辑了您的问题以显示 Java 标记。这是一个 JavaScript 解决方案。

假设您输入的是 str

str.split('-').forEach(function(a,i,b){
    result += i===0?(b[2]+'-'):i===1?(((new Date(str)).toUTCString()).split(' ')[2]+'-').toUpperCase():a[0];
});

【讨论】:

  • 它在服务器端。完成。非常感谢
【解决方案3】:

好的,我已经看到并回答了,但仍想添加一个。我不确定您想要 JS 或 Java 解决方案。您可以使用 Javascript 或 Java 进行此操作。以下是两种方式:
Javascript

var c = new Date('2015-04-08');
locale = "en-us" 
function formatDate(d)
 {
    var month = d.toLocaleString(locale, { month: "long" });
    var day = d.getDate();
    day = day + "";
    if (day.length == 1)
     {
     day = "0" + day;
      }
      return day + '-' + month +'-' + d.getFullYear();
  }

如果您想在 Java 中使用相同的功能,请执行以下操作..
Java

String myDateString = "2015-04-08";
String reqDateString = new SimpleDateFormat("dd-MMM-yyyy").format(myDateString);

如果用 Java 完成会更好,看起来更简单可靠..

【讨论】:

  • 是的,完成。可以在服务器端执行。我缺少一些语法
  • @DebasisMohapatra 欢呼..!! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
相关资源
最近更新 更多