时间戳为12 HR格式(HH:MM AM?PM)

时间:2017-09-04 05:35:37

标签: javascript google-apps-script

如何将此转换为12小时格式?

Sun Dec 31 14:45:42 GMT+07:36 1899

像这样(例如)

2:00 PM

3 个答案:

答案 0 :(得分:1)

如果您正在寻找特定于Google Apps脚本的答案,我能想到的最简单的解决方法是更改​​定义格式的方式。基于此票证的标题,我认为您正在使用此票证:

var date = new Date("Sun Dec 31 14:45:42 GMT+07:00 1899");

var date_24hr = Utilities.formatDate(date, 'GMT+7:00', 'EEE MMM dd HH:mm:ss zXX yyyy'); 
// logs Sun Dec 31 14:45:42 GMT+07:00 1899

var date_12hr = Utilities.formatDate(date, 'GMT+7:00', 'EEE MMM dd h:mm:ss a zXX yyyy'); 
// logs Sun Dec 31 02:45:42 PM GMT+07:00 1899

var time_12hr = Utilities.formatDate(date, 'GMT+7:00', 'h:mm a'); 
// logs 02:45 PM

关键是在formatDate值中使用小写的h而不是大写的H

答案 1 :(得分:0)

var date=new Date(); 

function formatAMPM(date) {
  var hours = date.getHours();
  var minutes = date.getMinutes();
  var ampm = hours >= 12 ? 'pm' : 'am';
  hours = hours % 12;
  hours = hours ? hours : 12; // the hour '0' should be '12'
  minutes = minutes < 10 ? '0'+minutes : minutes;
  var strTime = hours + ':' + minutes + ' ' + ampm;
  return strTime;
}

formatAMPM(date); 

答案 2 :(得分:0)

由于您已将此标记为GAS问题,您是否看过Utilities.formatDate()?文档here,但简而言之,它需要3个参数:日期对象,时区字符串&amp;格式字符串。 TZ&amp;格式取自Java SE SimpleDateFormat类。

在您的实例中,试试这个:

var d = new Date("Sun Dec 31 14:45:42 GMT+07:36 1899");
Logger.log(Utilities.formatDate(d, "GMT+07:00", "h:mm a")); // logs 2:09 PM