Methods for Getting and Formatting Current Date in Google Apps Script

Nov 24, 2025 · Programming · 11 views · 7.8

Keywords: Google Apps Script | Date Formatting | Utilities.formatDate | JavaScript Date | Google Sheets Integration

Abstract: This article provides a comprehensive exploration of various methods to obtain the current date in Google Apps Script, with emphasis on best practices using the Utilities.formatDate() function for date formatting. Through comparative analysis of different approaches and complete code examples, it delves into the configuration rules of date format strings, helping developers master the core skills of automatically populating formatted dates in Google Sheets.

Basic Date Retrieval Methods

In Google Apps Script, the fundamental method for obtaining the current date involves using JavaScript's built-in Date object. Instantiating new Date() creates an object containing current date and time information. While this approach is straightforward, the returned date format typically includes complete timestamp details, which may not meet specific display requirements.

The basic implementation code is as follows:

function getCurrentDate() {
  var currentDate = new Date();
  return currentDate;
}

When directly setting this date object to a Google Sheets cell, the system displays it in the default datetime format, which may include timezone information, time components, and other additional content.

Date Formatting Best Practices

To achieve date display formats that better align with user requirements, Google Apps Script provides the Utilities.formatDate() function. This function accepts three parameters: a date object, a timezone string, and a format pattern string. Through proper configuration of these parameters, highly customized date display effects can be achieved.

A complete formatted function call example is shown below:

function getFormattedDate() {
  var date = new Date();
  var timezone = "GMT+1";
  var format = "dd/MM/yyyy";
  return Utilities.formatDate(date, timezone, format);
}

In this example, the timezone parameter is set to "GMT+1", and the format pattern uses "dd/MM/yyyy", which produces a date string similar to "15/12/2023".

Format Pattern Detailed Explanation

Each character in the format pattern string carries specific meaning, and understanding the usage of these characters is crucial for achieving the desired date format.

Other commonly used format characters include:

Timezone Configuration Considerations

The timezone parameter plays a significant role in date formatting, particularly in cross-timezone application scenarios. Google Apps Script supports various timezone representation methods:

// Using GMT offset
var gmtTime = Utilities.formatDate(new Date(), "GMT+8", "dd/MM/yyyy HH:mm");

// Using IANA timezone identifier
var ianaTime = Utilities.formatDate(new Date(), "Asia/Shanghai", "dd/MM/yyyy HH:mm");

Selecting appropriate timezone configuration ensures that date displays remain consistent with the target users' local time.

Complete Application Example

Combining with Google Sheets cell operations, here is a complete date setting function:

function setTodayDate() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName("DataSheet");
  
  // Get formatted current date
  var today = Utilities.formatDate(
    new Date(), 
    Session.getScriptTimeZone(), 
    "dd/MM/yyyy"
  );
  
  // Set to specified cell
  sheet.getRange(5, 2).setValue(today);
  
  // Optional: Set cell format
  var range = sheet.getRange(5, 2);
  range.setNumberFormat("dd/mm/yyyy");
}

This example demonstrates how to retrieve the current date, perform formatting, set it to a specified cell, and ensure consistency between cell display format and data format.

Error Handling and Best Practices

In practical applications, appropriate error handling mechanisms should be considered:

function safeSetDate() {
  try {
    var sheet = SpreadsheetApp.getActiveSheet();
    var formattedDate = Utilities.formatDate(
      new Date(), 
      "GMT+1", 
      "dd/MM/yyyy"
    );
    sheet.getRange("B5").setValue(formattedDate);
  } catch (error) {
    Logger.log("Date setting failed: " + error.toString());
  }
}

Using try-catch blocks can capture potential exceptions, such as non-existent worksheets or invalid cell references.

Performance Optimization Recommendations

For applications requiring frequent date updates, consider the following optimization strategies:

Through proper design and optimization, the efficiency and stability of date processing functions can be ensured.

Copyright Notice: All rights in this article are reserved by the operators of DevGex. Reasonable sharing and citation are welcome; any reproduction, excerpting, or re-publication without prior permission is prohibited.