To show the current date and time in Google Sheets, enter =NOW() in a cell. It updates when the spreadsheet recalculates; to insert a timestamp that stays fixed, use the date-and-time keyboard shortcut instead.
Choose between a live and a fixed timestamp
The first decision is whether the value should change. A live timestamp is useful when a sheet should display the latest recalculation time. A fixed timestamp is better for recording when someone submitted a request, completed a task, or entered a row. These two uses may look alike in the grid, but they behave differently.
- Live:
NOW()returns the current date and time and can change when Sheets recalculates. - Fixed: A keyboard shortcut inserts a date and/or time as a value, which does not keep updating.
- Automatic record: Apps Script can write a fixed timestamp when an edit occurs, which is useful for logs and forms.
If a timestamp is meant to document an event, avoid relying on NOW() alone. Its value is not a permanent record of when the cell was first filled. A fixed value, or a carefully designed edit-triggered script, is more appropriate. Neither method makes a sheet tamper-proof: people with edit access may still change entries.
How the NOW function works
In any empty cell where you want a live date and time (no particular cell layout is required), enter =NOW(). The function takes no arguments. Sheets stores the result as a date-time value, even if the cell initially displays only a date or a number. The way it looks depends on the cell’s number format.
NOW() is volatile: Sheets recalculates it in response to spreadsheet activity and according to the file’s recalculation settings. It is not a continuously running clock that refreshes every second. Depending on the settings, the displayed value may update after an edit or on a timed interval. This distinction matters if someone expects a countdown-style clock or assumes that a displayed time records the exact moment an earlier action occurred.
For a live date without a time, in any empty cell where you want today’s date, enter =TODAY(). Like NOW(), it is a formula whose result can change, rather than a permanently stored entry. Use it for a report heading such as “as of today,” not as a substitute for a fixed date of submission.
Insert a fixed timestamp with a shortcut
To place a timestamp directly in a selected cell, use the Google Sheets keyboard shortcut for the date and time. On Windows or ChromeOS, press Ctrl+Alt+Shift+;. On a Mac, press Command+Option+Shift+;. This inserts the current date and time as a fixed value, rather than a formula that recalculates.
You can also enter just one part of the timestamp. The date shortcut is Ctrl+; on Windows or ChromeOS and Command+; on Mac. The time shortcut is Ctrl+Shift+; on Windows or ChromeOS and Command+Shift+; on Mac. Keyboard layouts and browser shortcuts can sometimes interfere, so if a combination does not work, check that the cell is selected and try the equivalent shortcut for your operating system.
A fixed timestamp is handy for occasional manual entries. For example, a person processing a short list of tasks can select the “Completed at” cell and insert the date and time when each task is finished. It will remain unchanged when other cells are edited. For a large shared log, however, manual entry depends on people remembering the shortcut and using it consistently.
Format the timestamp so it is readable
If a cell shows a decimal number, a date without a time, or a time without a date, the stored value may still be correct; the display format may simply be hiding part of it. Select the cell or range, then choose Format > Number > Date time. You can also select a date or time format from the Number menu, or use a custom date and time format when the standard choices do not suit your sheet.
For a log, a format such as year-month-day followed by hours and minutes can make entries easier to sort and compare. Including seconds can help distinguish entries made close together, but it does not make the timestamp more accurate than the underlying event or the spreadsheet’s recalculation. Formatting changes how a value appears; it does not convert a live formula into a fixed value.
When building a shared sheet, format the whole timestamp column in advance. That way a newly added fixed timestamp is more likely to display consistently with the existing rows. If a cell is formatted as plain text, a pasted or typed value may behave differently from an actual date-time value, so check the Number format when sorting or calculating with timestamps.
Check the spreadsheet time zone
Google Sheets uses the spreadsheet’s time-zone setting to interpret and display dates and times. To review it in a browser, open File > Settings, then check the time zone on the General tab. In a shared spreadsheet, a setting that does not match the team’s working location can make an otherwise correct timestamp appear several hours early or late.
Locale is another relevant setting in the same area. It can affect date conventions, such as whether a numeric date is understood as month-day-year or day-month-year. A timestamp displayed as a date-time value is less ambiguous than a short numeric date, but setting the correct locale still helps with data entry and presentation. Before changing either setting in an established file, consider that the change can affect how dates are displayed or interpreted across the spreadsheet.
Collaborators may be in different time zones, but the spreadsheet has a single time-zone setting. Agree on the time zone that the log should represent and make it clear in the sheet’s instructions or column heading. For records that need a clearly defined business or project time, a timestamp without that context can be misleading.
Automate a timestamp when a row is edited
For a simple edit log, Apps Script can write a fixed time into column B when a user edits column A on a sheet named “Log.” This example handles edits to one or more cells in column A, starting at row 2; it leaves the header alone and clears the corresponding timestamp if the edited value is cleared.
function onEdit(e) {
const range = e.range;
const sheet = range.getSheet();
// Watch column A on the Log sheet, below the header.
if (sheet.getName() !== "Log" ||
range.getColumn() !== 1 ||
range.getNumColumns() !== 1 ||
range.getRow() < 2) {
return;
}
const values = range.getValues();
const timestamps = values.map(([value]) => [
value === "" ? "" : new Date()
]);
sheet.getRange(range.getRow(), 2, range.getNumRows(), 1)
.setValues(timestamps);
}
To add it, open Extensions > Apps Script, paste the function into the script editor, save it, and make sure the sheet tab is named “Log.” A function named onEdit(e) runs when a user edits the spreadsheet; do not run it directly from the editor because it expects an edit event. This simple example replaces the timestamp whenever the corresponding input is edited. If the requirement is to preserve the first timestamp, the script needs an additional check to leave an existing value alone.
Simple edit triggers have limitations, and a script may not run for changes made by another script or through some automated processes. Test the behavior with the actual editing workflow and check the Apps Script documentation if you need an installable trigger or more control. Restrict who can edit the sheet if the log matters, and remember that a script-generated timestamp is not an immutable audit trail.
Common timestamp problems and fixes
- The time does not change every second: That is expected for
NOW(). Check File > Settings > Calculation for the recalculation frequency. Available options include recalculating on change and, where offered, on change and every minute or hour. - Only a date or a number appears: Select the cell and choose Format > Number > Date time. The value may be correct even when the current display is not what you want.
- The time is offset: Check the spreadsheet’s time zone in File > Settings, and confirm which zone the sheet is intended to use.
- The timestamp changed unexpectedly: If the cell contains
=NOW(), it is live. Use a fixed shortcut value or an appropriate script for a record that should not recalculate. - A shortcut types a character instead: Make sure the cell is selected rather than being edited as text, and try the Mac or Windows shortcut that matches your device. Browser or keyboard settings can affect key combinations.
Changing the recalculation setting can affect every volatile formula in the file, not just the timestamp. A sheet with many formulas may also recalculate differently from a small one. If a live display is not essential, using a fixed timestamp avoids depending on refresh intervals.
Choosing a method, and how Excel differs
Use NOW() when you want a live “current time” display or a calculation that should respond to recalculation. Use the shortcut for a quick, manually recorded event time. Use Apps Script when you need repeatable timestamps on edits and are willing to configure and maintain automation. The right option depends on whether the timestamp represents now, a past event, or an automatically recorded edit.
In Microsoft Excel, NOW() is also a recalculating function, and Excel has its own shortcuts and settings. However, Google Sheets menu paths, browser shortcuts, and Apps Script do not apply to Excel. If a spreadsheet is shared between the two products, confirm that the formulas, formats, and any automation behave as intended in each one rather than assuming identical features.
Frequently Asked Questions
Does Google Sheets have a current timestamp formula?
Yes. In any empty cell where you want the live date and time, enter =NOW(). It returns a date-time value that can change when the sheet recalculates; it is not a fixed record of when you first entered it.
How do I insert a timestamp that will not change?
Select the target cell and use the date-and-time shortcut: Ctrl+Alt+Shift+; on Windows or ChromeOS, or Command+Option+Shift+; on a Mac. The inserted value stays fixed unless someone edits it.
Can I make NOW update every second?
Not as a continuously ticking clock through the standard NOW() formula. Google Sheets recalculates it according to spreadsheet activity and the available recalculation settings, which may include a one-minute or one-hour interval.
Why does my timestamp show the wrong time?
Check the spreadsheet time zone under File > Settings. Also confirm that the displayed cell is formatted as a date-time and that the sheet’s time zone matches the one intended for the record.
Can I timestamp a row automatically when someone edits it?
Yes, an Apps Script edit trigger can write a fixed date-time value to another column when a user changes a row. The script must match your sheet layout, and a basic onEdit(e) trigger has limitations, so test it with the edits your team actually makes.
Related
- Clear Cache in Microsoft Outlook: Windows, Mac & Mobile
- How to Clear Cache in New Microsoft Outlook on Windows
- Clear Cache in Microsoft Outlook: Windows, Mac & Web
Try it: the Date Difference Calculator: days, months, years and weekdays between two dates, with the DATEDIF formulas.
More in How-to basics
- Insert a Search Bar in Excel: Two Easy Practical WaysTo add a search bar that filters a list as you type, put a search term in a…
- Yes/No Dropdown in Google Sheets: Add One in MinutesTo add a Yes/No dropdown in Google Sheets, select the cell or cells, choose Insert > Dropdown, enter…
- Word Booklet: Can You Make One From a Document?Yes. Microsoft Word can arrange a document as a booklet: in the desktop app, set the pages option…
- Blocking a Sender in Outlook: Steps and What to KnowTo block a sender in Outlook, select one of their messages and choose Block or Block Sender from…
- How to Export Group Contacts in Outlook as a CSVTo export Outlook group contacts, first identify whether you have a classic Outlook Contact Group or a Microsoft…
- Does Block Sender in Outlook Really Work? What to KnowYes—Outlook’s Block Sender feature works by directing future email from a blocked address to Junk Email, rather than…
Sources: Function behaviour and menu paths: Microsoft Support documentation for Excel. Method & sources
Spotted an error in this guide? Let us know.