格式化Moment.js am / pm以包含句点/点

时间:2016-07-05 13:14:44

标签: javascript datetime momentjs

我在片刻String s = "Java "; Scanner scan = new Scanner(System.in); String t = scan.nextLine(); String u = s + t; System.out.println(u); 输入时遇到了一个小格式问题。

a / A将返回上午/下午/下午,但是有没有办法将其格式化为包含句点?

即。的 A.M。 p.m。这是一个对客户很重要的格式更改,我无法通过片刻文档找到修复

我试过

a

没有成功

有可能吗?

4 个答案:

答案 0 :(得分:4)

用于自定义meridiem的方法适用于版本< 1.6.0。您应该在较新版本中提供更新meridiem的功能。有关详细信息,请参阅the docs

moment.updateLocale('en', {
  meridiem: function(hour, minute, isLowerCase) {
    if (hour < 12) {
      return 'a.m.';
    } else {
      return 'p.m.';
    }
  }
});

答案 1 :(得分:2)

docs之后,您可以拥有以下内容:

&#13;
&#13;
moment.updateLocale('en', {
  meridiem: function (hour, minute, isLowercase) {
    if( hour >= 12 )
      return isLowercase ? 'p.m.' : 'P.M.';
    else
      return isLowercase ? 'a.m.' : 'A.M.';
  }
});
console.log(moment().hour(1).format('HH:mm a'));
console.log(moment().hour(15).format('HH:mm A'));
&#13;
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>
&#13;
&#13;
&#13;

如文档中所述,从当前版本 1.6.0

开始
  

Locale#meridiem应该是一个回调函数,它根据小时,分钟和大写/小写返回正确的字符串。

1.6.0之前的版本

  

Locale#meridiem是am / pm的大写和小写版本的地图。

答案 2 :(得分:1)

根据@ user4040648回答,这里是如何在es6

中实现它的方法
    moment.updateLocale('en', {
      meridiem(hour, minute, isLowerCase) {
          return hour < 12 ? 'a.m.' : 'p.m.';
      }
    });

答案 3 :(得分:0)

meridiem地图是1.5.x及以下版本,在1.6.0之后,meridiem是一个返回值的函数(参见link)。