当您将问题标记为“Javascript”并且实际使用 Google Apps 脚本时,问题在于您会从不了解 GAS 中可用的某些特殊功能的人那里得到很好的答案。
GAS 基于 Javascript,但 Javascript 不是 GAS……如果你明白我的意思 ;-)
也就是说,实际上有一个“特殊”函数来格式化日期字符串,我将在下面的代码中展示它。
但是还有另一点可能会给您带来麻烦:如果您没有在日期对象中提及小时,那么如果您居住在使用夏令时的国家/地区,则有可能会改变一天。这个问题已经在这个论坛和其他地方经常讨论,所以我不会给出所有的细节,但是当你玩日期对象时考虑到这一点是个好主意。在下面的代码中,我tz
从我们刚刚创建的日期对象中提取了一个(时区)字符串,以了解它是在夏季还是冬季,然后我将此tz
字符串用作Utilities.formatDate()
方法中的参数。这保证了在任何情况下都能得到准确的结果。
这是(最后)测试代码:(
使用记录器查看结果。脚本编辑器>查看>日志)
function test(){
date = "2012-08-9";
var parts = date.split('-')
var datum = new Date(parts[0],parts[1]-1,parts[2],0,0,0,0);// set hours, min, sec & milliSec to 0
var tz = new Date(datum).toString().substr(25,8);// get the tz string
Logger.log(datum+' in TimeZone '+tz)
datum.setDate(datum.getDate() + 1);// add 1 day
var dateString = Utilities.formatDate(datum,tz,'yyyy-MMM-dd');// show result like you want, see doc for details
Logger.log(dateString);// the day after !
}
记录器结果:
Thu Aug 09 2012 00:00:00 GMT+0200 (CEST) in TimeZone GMT+0200
2012-Aug-10