Dates are an inevitable part of Google Sheets. And like many other concepts of spreadsheets, they require a bit of learning.
In this tutorial, you will find out how Google stores dates and how you can format them for your better convenience. Some date formats are offered to you by spreadsheets while others should be created from scratch. There are even a couple of handy functions for the task.
I also describe a couple of ways to convert your dates to numbers and text if necessary.
How Google Sheets formats dates
First things first: before any activities related to dates in spreadsheets, it's crucial to understand the core principles of how dates work.
For its internal database, Google Sheets stores all dates as integer numbers. Not sequences of a day, month, and year as we got used to seeing, but simple integers:
- 1 for December 31, 1899
- 2 for January 1, 1900
- 102 for April 11, 1900 (100 days after January 1, 1900)
- and so on.
Unlike Excel that cannot store dates as negative numbers, in Google, for dates prior to December 31, 1899, the numbers will be negative:
- -1 for December 29, 1899
- -2 for December 28, 1899
- -102 for September 19, 1899
- etc.
Regardless of how Google Sheets formats dates for you to see in cells, spreadsheets always store them as integers. It's an automatic Google Sheets date format that helps to treat dates correctly.
Tip. The same goes for time units – they are merely decimals for your table:
- .00 for 12:00 AM
- .50 for 12:00 PM
- .125 for 3:00 AM
- .573 for 1:45 PM
- etc.
A date paired with time is kept as an integer with decimal places:
- 31,528.058 is April 26, 1986, 1:23 AM
- 43,679.813 is August 2, 2019, 7:30 PM
Change date format in Google Sheets to another locale
Another important thing to keep in mind is your spreadsheet locale.
The locale is what presets your Google Sheets date format based on your region. Thus, if you're currently in the US, 06-Aug-2019 will be put as 8/6/2019 in your sheet, while for the UK it'll be 6/8/2019.
To ensure the correct calculations, it's vital to have the correct locale set, especially if the file was created in another country:
- Go to File > Settings in the Google Sheets menu.
- Find Locale under the General tab and pick the desired location from the drop-down list:
Tip. As a bonus, you can also specify your time zone here to record your file history in it.
Note. The locale doesn't change the language of your Sheets. However, the date formatting will be applied to the entire spreadsheet. Everyone who works with it will see the changes, no matter their place on the globe.
How to change date format in Google Sheets
If dates in your tables are formatted inconsistently or all you can see is strange sets of numbers instead, don't panic. You simply need to change the date format in your Google Sheets using built-in instruments.
Default Google Sheets date format
- Select all cells you'd like to format.
- Go to Format > Number in the spreadsheet menu and pick Date to see the date only or Date time to get both date and time in a cell:
The integers successfully turn into the format that you'll recognize at a glance. These are default Google Sheets date formats:
Tip. You can find the same formats if you click on the 123 icon on the spreadsheet toolbar:
Custom date formats
If you don't like how Google Sheets formats dates by default, I won't blame you. Luckily, there's plenty of room to improvise thanks to custom date formats.
You can access them from the same Google Sheets menu: Format > Number > Custom date and time:
You will see the window with lots of different custom date formats available. Whichever one you chose and apply, your dates will look the same:
If you're still unhappy with the appearance of your dates, you can tailor your own custom date format:
- Select the cells you want to format.
- Go to Format > Number > Custom date and time.
- Place the cursor into the field at the top that contains the date units and delete everything with your Backspace or Delete keys:
- Click the arrow to the right of the field and pick the unit you'd like to have first. Don't forget to type the separator afterwards.
Repeat till all the necessary units are added (no worries, you'll be able to add or remove them later):
- Notice that each unit has double arrows to its right. Click them and you'll be able to adjust the exact way to display the value.
Here's what I can choose for Day:
This way, you can edit all values, insert additional and delete obsolete ones. You are free to separate the units with various characters including commas, slashes, and dashes.
- Once you're ready, click Apply.
Here's what format I've created and how my dates look now:
QUERY function for Google Sheets to format dates
There's one more way to change date format in Google Sheets – with a formula, of course. Since this is not the first time of me showing QUERY to you, I'm starting to think of it as a real cure-all for spreadsheets. :)
I have an example table where I track the shipment of a few orders:
I want to change the date format in column B. Here's my QUERY formula:
=QUERY(A1:C7,"select * format B 'd-mmm-yy (ddd)'")
- first, I specify the range of my entire table – A1:C7
- then I'm asking the formula to return all columns – select *
- and at the same time re-format column B the way I put into the formula – format B 'd-mmm-yy (ddd)'
The formula works like a charm. It returns my entire table and changes date format in column B:
As you may have noticed, to change the date format via the formula, I used special codes that represent different looks of days, months, and years. If you're not familiar with them, here's a list of these codes for dates:
Code | Description | Example |
d | Day without a leading zero for 1-9 | 7 |
dd | Day with a leading zero for 1-9 | 07 |
ddd | Day as an abbreviation | Wed |
dddd | Day as a full name | Wednesday |
m (if not preceded or followed by hours or seconds) |
Month without a leading zero | 8 |
mm (if not preceded or followed by hours or seconds) |
Month with a leading zero | 08 |
mmm | Month as an abbreviation | Aug |
mmmm | Month as a full name | August |
mmmmm | First letter of the month | A |
y or yy |
Two digit year | 19 |
yyy or yyyy |
Full numeric year | 2019 |
Tip. If you'd like to supply your date format with time as well, you need to add codes for time units. You will find the full list of time codes in this guide.
Using these codes, you can format the dates in so many ways:
- Get the hold of the year, month, or day only:
=QUERY(A1:C7,"select * format B 'yyyy'")
- Return the day, month, and the day of the week:
=QUERY(A1:C7,"select * format B 'dd mmmm, dddd'")
By the way, what date format have you got used to? :)
Google Sheets: convert date to number
In case you need to see numbers instead of dates, one of the methods below will be useful.
Convert date to number by changing the format
- Select those cells with dates that you want to convert to numbers.
- Go to Format > Number and this time pick Number among other options.
- Voila – all selected dates have turned into numbers that represent them:
DATEVALUE function for Google Sheets
Another way for Google Sheets to convert date to number is by using the DATEVALUE function:
where date_string represents any date in the known for spreadsheets format. The date should be put in double-quotes.
For example, I want to convert August 10, 2023 to a number. All the formulas below will return the same result: 45148.
=DATEVALUE("August 10, 2023")
=DATEVALUE("2023-8-10")
=DATEVALUE("8/10/2023")
Tip. If you're not sure whether Google Sheets understands the format you're about to enter, try typing the date into another cell first. If the date is recognized, it'll be aligned to the right.
You can also fill your cells with dates in one column, and then reference them in your formulas in another column:
=DATEVALUE(A2)
Google Sheets: convert date to text
Converting dates to text in spreadsheets is the task for the TEXT function:
- number – regardless of what number, date, or time you give to the function, it will return it as text.
- format – the text will be formatted the way you specify in the formula.
Tip. To set the format correctly, use the same codes as you did for the QUERY function.
The real-data formula may look like this:
=TEXT("2/7/2023","YYYY-MM-DD")
Here's how I converted my date – 2/7/2023 - to text and changed the format at the same time:
Google Sheets: convert text to date
Sometimes your dates may appear in a way that Google Sheets doesn't understand at all. And it doesn't really matter whether they are imported or you just fancy a certain view:
Unless you specify a custom format for each cell or change the locale of your spreadsheet, these dates will be formatted as text by default. You won't be able to use them in formulas or other calculations.
But here's the easiest solution for your Google Sheets: convert text to dates using the Power Tools add-on. It's literally a single radio button among other convert tools.
The tool recognizes all these custom formats in your Google Sheets and converts text to date so all cells become consistent and can be used for further reference:
This is it! I hope by now you know how to change date format in Google Sheets and convert dates to numbers or text. Feel free to share other cool ways in the comments section below. ;)
207 comments
Brilliant
The solution to change the date format using the QUERY function is the simplest I've seen. Great work. Thank you for solving this issue.
=QUERY(A1:C7,"select * format B 'd-mmm-yy (ddd)'")
You're most welcome, Jorge :) Appreciate your feedback!
Hi I have a big issue. I am trying to automate my work tasks and I have an account in google sheets which is linked to my Calendly and it downloads all the data from calendly into different collumns on my google sheets. One of them is the time. The cell with the time and date expresses the date in this form"07:00pm - Wednesday, April 5, 2023". I wanted to created an specific number for each one as sometimes i get interviews in my agenda from different days and i wanted the dates to be ordered from monday to friday each day with the correct hours. I had managed to do that with this formula
"=FECHANUMERO(DERECHA(B20;LARGO(B20)-ENCONTRAR(",";B20)-1)) + HORANUMERO(IZQUIERDA(B20;5))"
But today, it collapsed and I dont know why.
I wanted to know if there is a way in which I can again make it work or use a similar formula.
i will show how it used to look:
NUMBER VALUE TIME from calendly
45019,20833 05:00pm - Monday, April 3, 2023
45019,22222 05:20pm - Monday, April 3, 2023
45019,23611 05:40pm - Monday, April 3, 2023
45019,25 06:00pm - Monday, April 3, 2023
45019,26389 06:20pm - Monday, April 3, 2023
45019,27778 06:40pm - Monday, April 3, 2023
and now i have a message of error that says "El parámetro "April 5, 2023 " de DATEVALUE no se puede analizar como fecha/hora."
Hello Agustina,
For me to be able to help you better, please specify how the records look when Calendly returns them and how you need them to look as a result.
Is there a region that uses both $ and the ISO standard date format? I'm getting tired of constantly converting dates to YYYY-MM-DD, but the only work around I could find was setting my region to an area that does not use dollars.
Hello Rosalie,
Sorry, I can't say for sure as I don't have experience with all locales. However, you can apply the required date or custom currency format once, and then quickly copy/apply it using the standard Paint format tool: https://support.google.com/docs/answer/161768?co=GENIE.Platform%3DDesktop&hl=en#zippy=%2Ccopy-text-formatting-paint-format
Hi Natalia, I was reading your post but unfortunately my problem is more in the hour section which you kind of overlooked. I know, it must be the least used part of the date info but in my case is exactly, and only, what I need. I don't know if this goes beyond your expertice but I'm building a time sheet to calculate my worked hours in order to speed up my montly report. I found that manually entering the data is not only tedious but also prone to errors that could affect my paycheck. So I found a tutorial to convert 3 digit and 4 digit numbers into time using a Google Apps Script. It's working in converting my numbers into time format on the fly but it's not doing it correctly. When I enter "930" it converts it to "12:30", if i enter "830" it gives me "00:50". I tried changing the Locale in settings but it still converts it wrong. Can you guide into whatever might be happening here? Assuming there's nothing wrong in the script of course but in Google Sheets. Also, i'd like to know if after I make it to convert to time correctly I could simply create a formula to substract my Clock-in Time from my Clock-out Time and have the exact total of worked hours. I did it in a basic spreadsheet with no script applied and it seemed to work but it always gave weird time like, if I entered: 9:30 as clock-in time and 7:30 as clock-out time it gave me 10 hours total but it'd say "10:00 PM". It's funny it gets the total right when also assumes weird time inputs. Like 9:30 am as clock-in and 7:30 also am as clock out.
Hi Sergio,
I'm sorry but we don't cover the programming area (script-related questions). If the script converts time, I'd look for the problems there.
To add or subtract different time units, please see this blog post. It also covers cases like when you need to calculate more than 24 hours.
Also, if you just enter 9:30 and 7:30 and don't specify the part of the day (AM/PM), Google Sheets will automatically mark them as AM (select each cell and look at the formula bar, you'll see how Google Sheets understands the values). Hence, the result is 22:00, or 10:00 PM with the Time format.
Hello Natalia,
Under "How Google Sheets Formats dates" there's a couple of examples of how time is kept as an integer.
It's written that, 43,679.813 is August 2, 2019, 7:30PM.
Shouldn't the integer for 7:30 PM be .73 instead of .813?
Example:
31,528.058 is April 26, 1986, 1:23 AM
43,679.813 is August 2, 2019, 7:30 PM
Hello Marques,
You can check this by entering 7:30 PM into a cell and applying the Automatic format to it. You'll see 0.813
Thank you Natalia!
My pleasure :)
In cell in "Date is vaild" format is dd/mm/yyyy. How to change is yyyy-mm-dd in plain text ?
" Is valid date"
Hello Nontakorn,
I'm sorry, your question isn't clear. Could you elaborate, please? Thank you!
In cell function data validation " Is valid date " when i choose date. The format is dd/mm/yyyy but i want to format yyyy-mm-dd in plain text not use Format "Date" in toolbar. i want a plain text date is yyyy-mm-dd. Thanks><
Thank you for replying, Nontakorn.
What happens if you simply apply the required format (Format > Number > Plain text) to a cell with that data validation rule? It works for me. Though you will most likely have to re-enter the date in the required format.
Or use the formula from this part of the article to set the format.
Thank you
Hi Natalia!
I have a problem with the way google sheets interprets the dates I'm writting. I have a column for dates with the format dd-mm-yyyy. However, when I type a date such as 12-2-23 it assumes the date 23-12-2012 by default! What can I do? Thanks!
Hi Leonor,
I'd check the locale of the spreadsheet first. More about it and why it's important in this part of the article.
Then select your entire column (not just cells with the data) and apply the desired date format manually once more.
Hi. This is so useful and works perfectly on one of my date columns. I have a 6 columns of dates contained within a range of E3:O. that need formatting in this way - Columns E,K,L,M,N,O. I am struggling to get the right syntax for formatting multiple columns using the one QUERY function. Thanks so much.
Hi Claire,
I'm sorry, I somehow overlooked your comment. If you still need help, please specify what exactly you're trying to format (what's in your cells and what's your desired output). Also, please provide the QUERY you're trying to use.
Also, make sure to check out this part of the article: QUERY function for Google Sheets to format dates
Hello. I need help. I have a table that has 1 column with a date of this format ("January 30, 2023 at 11:57PM" or "January 31, 2023 at 12:20AM"). When the payment is made, the date comes from the server in this format. My task is to find the difference between the last two dates and output it. I need to do something like this - the last payment was 3 hours 15 minutes / the last payment was 1 day 14 hours and 3 minutes. =TEXT , =DATEDIF do not work. Can someone help me?
Hello Mitya,
For me to be able to help you better, please consider sharing a small sample spreadsheet with us (support@apps4gs.com) with 2 sheets: (1) a copy of your source data with the formulas that you tried (2) the example of the result you expect to get. The result sheet is of great importance as it gives a better understanding than any text description.
Note. We keep that Google account for file sharing only and don't monitor its Inbox. Please do not email there. Once you share the file, just confirm by replying to this comment.
I'll look into it and try to help.
Wednesday 21st Dec (11 AM-12 PM) Importing data from different sheets. Need this in only date format ex(09/01/2023)
Hello Indu,
You will find the ways of changing the date format in this part of the blog post.
I receive a month on numbers as I group by it to get the total sales on each month.
I would like to format it from the group by straight to my query, this is the far I could go but it isn't work. I'm in Brazil so that's why some character's may seem wrong.
=QUERY(Vendas!A:P;"Select MONTH(A), sum(P), count(P) group by MONTH(A) label MONTH(A) 'Mês', sum(P) 'Faturamento', count(P) 'Limpezas no Mês' Format sum(P) 'R$ ##,##0.00', MONTH(A) '"&TEXTO(&"MONTH(A)"&;'MMMM')&"'")
Hope I was understandable.
Hello Rodrigo,
If you still need assistance, please share a small sample spreadsheet with us (support@apps4gs.com) with 2 sheets: (1) a copy of your source data with your formula (2) the example of the result you expect to get. The result sheet is of great importance as it gives a better understanding than any text description.
Note. We keep that Google account for file sharing only and don't monitor its Inbox. Please do not email there. Once you share the file, just confirm by replying to this comment.
I'll look into it and try to help.
Hello,
I have a problem with creating a date.
I use the following formula in the script editor:
Utilities.formatDate(new Date(Year,Month,Day), FormTimeZone, 'dd.MM.yyyy')
In the logger:
07:53:26 Info Day= 30.0
07:53:26 Info Month= 12.0
07:53:26 Info Year = 2022.0
But the result from the upper Formular is
07:53:26 Info Mon Jan 30 00:00:00 GMT+01:00 2023
What is wrong with it?
Hello Jens,
We're always ready to help you, but we do not cover the programming area (script-related questions).
You may try to find a solution here – an overview of Google Apps Script with a lot of helpful content and links:
https://developers.google.com/apps-script/overview
I hope you’ll find this information helpful.
Hello;
Google spreadsheets have dates in column C.
In the output of this code that I wrote in the Apps Script section, the dates are missing 1 day.
Example: The date in column C2 is 23.10.2022, when I print from postman it is "2022-10-22T21:00:00.000Z"
if (mo == "kontrol") {
var id = e.parameter.id;
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sheet = doc.getSheetByName('Sayfa1');
var values = sheet.getRange('A:E').getValues();
var output = [];
for (var i = 0; i obj.id.toString().toLowerCase().includes(id.toString().toLowerCase()));
return ContentService.createTextOutput(JSON.stringify(outputToReturn[0])).setMimeType(ContentService.MimeType.JSON);
}
return ContentService.createTextOutput(JSON.stringify(output)).setMimeType(ContentService.MimeType.JSON);
}
Hello Adem,
I'm sorry, we do not cover the programming area (script-related questions).
You may try to find a solution here – an overview of Google Apps Script with a lot of helpful content and links:
https://developers.google.com/apps-script/overview
Trying to create a column that determines the age of a user based on the DOB.
Sometimes it works but other times the forward slashes make the formula break. I have tried converting the column to the date format with hyphens but they don't change for some reason unless I manually convert them.
C18 has the following --> 2006-02-06 ---> which works fine to convert to ---> 16 ----> using =if(ISBLANK(C18),"",floor((Today()-C18)/365))
but literally, cell below this doesn't work with the same formula and I can't get it to change into the same format with hyphens.
C19 1/25/2006 ---> gives following error ---> #VALUE! --> formula is same ---> =if(ISBLANK(C19),"",floor((Today()-C19)/365))
What am i missing here?
Hi!
1/25/2006 does not match your date format and is written as text. Read more here: Date and time in Google Sheets.
You can convert dates in text format to date format with Power Tools for Google Sheets.
How can I make google Sheets recognize that 0:01 AM for the next day is greater than 23:59PM from the previous day?
Hi!
If the end time is longer than the start time, then you need to add 1 day to their difference
=IF(A1 > A2,A2-A1+1,A2-A1)
I have a DATEDIF formula but the result is only displaying as a single digit. Eg start date is 19/08/2019 end date is 13/10/2022, my formula is =DATEDIF(C2,D2,"YM") but the result is presenting as '1'
Hello Lyndsay,
Correct, "YM" you're using in the formula returns the number of whole months between the dates after subtracting whole years. If you need to see 37 (the number of whole months between the dates), use "M" instead.
You will find more about DATEDIF in this article.
Hi
How do I convert 20220629 to date ? like 2022/06/29.
Thanks
J
Hi Jesh,
In your case, you need to extract the required digits to the corresponding arguments of the DATE function. Like this:
=DATE(LEFT(A2,4), MID(A2,5,2), RIGHT(A2,2))
how would I convert times between 12:00-12:59 to 0:00-0:59?
Hi Jamie,
Try using this formula:
=A2 + 0.5
Where A2 is your cell with the time.
Hey there,
I'm stuck
I have a column with the day as 04, 07, 15 etc and they're not consecutive (I'm putting together a silly holiday calendar). The month is a header at the top so I don't include it in the day column data.
I'd like to automatically change the numbers in that day column to 01/04/2023 etc.
Is there any way to make that happen?
Hey Evan,
For Google Sheets to treat such cells as dates, you should enter the dates in any Date format Google recognizes as such I'm afraid.
The numbers of the calender is at 2 4 6 8 10 how can i fix that
Hello J,
Sorry but your question is not clear. Could you please describe the problem in detail?