Hi @Sebastien Virgilio ,
The JSON code I used:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "span",
"txtContent": "=getDate([$DateFormatting]) + ' ' + if(getMonth([$DateFormatting])==0,'Jan',if(getMonth([$DateFormatting])==1,'Feb',if(getMonth([$DateFormatting])==2,'Mar',if(getMonth([$DateFormatting])==3,'Apr',if(getMonth([$DateFormatting])==4,'May',if(getMonth([$DateFormatting])==5,'Jun',if(getMonth([$DateFormatting])==6,'Jul',if(getMonth([$DateFormatting])==7,'Aug',if(getMonth([$DateFormatting])==8,'Sept',if(getMonth([$DateFormatting])==9,'Oct',if(getMonth([$DateFormatting])==10,'Nov','Dec'))))))))))) + ' ' + getYear([$DateFormatting])"
}
If I changed my system time zone which is (UTC+08:00) to (UTC-12:00), I reproduced your issue in my end, all displayed dates were one day ahead.
As said in this article: https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/column-formatting#operators,
getMonth returns the month in the specified date according to local time.
Per my test, if you use getDate( ), getMonth( ) and getYear( ) functions in your JSON code, they return date, month or year according to local time(system time).
As a workaround, I suggest you to add a calculated column using the below formula instead.
=TEXT([DateColumnName],”dd mmm yyyy”)
The date displayed in the calculated field will not change according to the system time.The calculated fields of existing items in the list will be automatically populated. You can hide the previous date column if you only want to have a column to display the date in the view. Of course you are still able to use JSON code to customize the new calculated column.
If an Answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.