Dates with Apps Script
To get the current date and time, simply create a Date object without any arguments:
function example() {
const date = new Date();
console.log(date); // Example: Sat Jan 13 2024 10:41:29 GMT+0100 (Central European Standard Time)
}
Setting a Date
To set a specific date, enter it as an argument of the Date object:
function example() {
let date = new Date(2024, 1, 24);
console.log(date); // Returns: Sat Feb 24 2024 00:00:00 GMT+0100 (Central European Standard Time)
date = new Date(2024, 1, 24, 14, 30);
console.log(date); // Returns: Sat Feb 24 2024 14:30:00 GMT+0100 (Central European Standard Time)
date = new Date('2025-03-25');
console.log(date); // Returns: Tue Mar 25 2025 01:00:00 GMT+0100 (Central European Standard Time)
date = new Date('March 25, 2025 15:25:00');
console.log(date); // Returns: Tue Mar 25 2025 15:25:00 GMT+0100 (Central European Standard Time)
}
Formatting a Date
To format a date with Apps Script, use Utilities.formatDate where you specify the date, timezone, and format.
Here are some examples with different time zones:
function example() {
const date = new Date();
console.log(Utilities.formatDate(date, 'GMT', 'MM/dd/yyyy')); // Example: 13/01/2024
console.log(Utilities.formatDate(date, 'GMT-7', 'MM/dd/yyyy hh:mm a')); // Example: 01/13/2024 02:49 AM
console.log(Utilities.formatDate(date, 'EST', 'MM/dd/yyyy hh:mm a')); // Example: 01/13/2024 04:49 AM
console.log(Utilities.formatDate(date, 'CST', 'MM/dd/yyyy hh:mm a')); // Example: 01/13/2024 03:49 AM
console.log(Utilities.formatDate(date, 'PST', 'MM/dd/yyyy hh:mm a')); // Example: 01/13/2024 01:49 AM
console.log(Utilities.formatDate(date, 'America/New_York', 'MM/dd/yyyy hh:mm a')); // Example: 01/13/2024 04:49 AM
// Session.getScriptTimeZone() => user's timezone
console.log(Utilities.formatDate(date, Session.getScriptTimeZone(), 'MM/dd/yyyy hh:mm a')); // Example: 01/13/2024 10:49 AM
}
And here are different examples of date formats:
function example() {
const date = new Date('Mon Feb 12 2024 03:48:45 PM EST');
const consoleDate = format => console.log(Utilities.formatDate(date, 'EST', format));
consoleDate('M/d/yy'); // Returns: 2/12/24
consoleDate('MM-dd-yyyy'); // Returns: 02-12-2024
consoleDate('MMM d yy'); // Returns: Feb 12 24
consoleDate('MMMM d yyyy'); // Returns: February 12 2024
consoleDate('E d'); // Returns: Mon 12
consoleDate('EEEE d hh:mm a'); // Returns: Monday 12 03:48 PM
consoleDate('MM/dd/yyyy hh:mm a'); // Returns: 02/12/2024 03:48 PM
consoleDate('MM/dd/yyyy HH:mm'); // Returns: 02/12/2024 15:48
consoleDate("'On' MM/dd/yy 'at' hh:mm a"); // Returns: On 02/12/24 at 03:48 PM
consoleDate("'Week number:' w"); // Returns: Week number: 7
consoleDate("'Day of week (1-7):' u"); // Returns: Day of week (1-7): 1
}
Retrieving Information
To retrieve the year, month, hour, etc., you can use one of these methods:
function example() {
const date = new Date('Mon Feb 12 2024 03:48:45 PM EST');
console.log(date.getFullYear()); // Returns the year: 2024
console.log(date.getMonth()); // Returns the month (0-11): 1
console.log(date.getDate()); // Returns the day: 12
console.log(date.getDay()); // Returns the weekday (0-6): 1
console.log(date.getHours()); // Returns the hour: 21
console.log(date.getMinutes()); // Returns the minutes: 48
console.log(date.getTime()); // Returns the time elapsed in milliseconds since 1970: 1707770925000
}
Formatting Alternative
An alternative to formatting a date is to use the toLocaleDateString method:
function example() {
const date = new Date('Mon Feb 12 2024 03:48:45 PM EST');
console.log(date.toLocaleDateString()); // Returns: 2/12/2024
console.log(date.toLocaleDateString('en-US')); // Returns: 2/12/2024
console.log(date.toLocaleDateString('en-US', {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric'
})); // Returns: Monday, February 12, 2024
console.log(date.toLocaleDateString('en-US', {
year: '2-digit',
month: 'numeric',
day: 'numeric'
})); // Returns: 2/12/24
console.log(date.toLocaleDateString('en-US', {
weekday: 'short',
month: 'long',
day: 'numeric',
hour: 'numeric',
minute: '2-digit'
})); // Returns: Mon, February 12 at 9:48 PM
}
Or in some cases, the toLocaleString method:
function example() {
const date = new Date('Mon Feb 12 2024 03:48:45 PM EST');
console.log(date.toLocaleString()); // Returns: 2/12/2024, 9:48:45 PM
console.log(date.toLocaleString('en-US')); // Returns: 2/12/2024, 9:48:45 PM
console.log(date.toLocaleString('en-US', {
hour: 'numeric',
minute: '2-digit'
})); // Returns: 9:48 PM
}