Google Apps Script:
Getting the current date

How to:

Google Apps Script, which is based on JavaScript, offers straightforward methods to get the current date. You can use the new Date() constructor to create a new date object representing the current date and time. Here’s how you can manipulate and display this in various formats.

function showCurrentDate() {
  var currentDate = new Date();
  
  Logger.log(currentDate); // Logs the current date and time in the script's timezone
  
  // To display just the date in YYYY-MM-DD format
  var dateString = currentDate.getFullYear() + '-' + 
                   (currentDate.getMonth() + 1).toString().padStart(2, '0') + '-' + 
                   currentDate.getDate().toString().padStart(2, '0');
  Logger.log(dateString); // Example output: "2023-04-01"
  
  // Displaying in a more readable format
  var options = { year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit', timeZoneName: 'short' };
  var readableDate = currentDate.toLocaleDateString('en-US', options) + ' ' + 
                     currentDate.toLocaleTimeString('en-US', options);
                     
  Logger.log(readableDate); // Example output: "April 1, 2023, 12:00:00 PM GMT+1"
}

These snippets demonstrate how to capture and format the current date and time, showcasing versatility for various programming needs within Google Apps Script.

Deep Dive

Before JavaScript settled on the Date object, programmers had to manually keep track of time and date through less standard and more cumbersome means. This included the usage of timestamp integers and homemade date functions, which varied from one programming environment to the other, leading to inconsistency and compatibility issues.

The new Date() object introduction in JavaScript, and by extension Google Apps Script, standardized date and time operations, making them more intuitive and reducing the amount of code necessary for date-related operations. It’s worth noting that while Google Apps Script’s implementation is convenient and sufficient for many applications within Google’s suite of products, it may not cater to all scenarios, especially those requiring complex time-zone handling or precise time-stamp logging in fast-paced environments.

For such advanced use cases, programmers often turn to libraries such as Moment.js or date-fns in JavaScript. While Google Apps Script does not natively support these libraries, developers can mimic some of their functionalities using available JavaScript Date methods or by accessing external libraries through HTML Service or Apps Script’s URL Fetch service. Despite these alternatives, the simplicity and integration of Google Apps Script’s native date and time functions remain a go-to for most Google ecosystem tasks.