Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!To celebrate FabCon Vienna, we are offering 50% off select exams. Ends October 3rd. Request your discount now.
How can I ensure that the birthday dates display correctly across Desktop, Web, and Mobile apps, considering timezone differences?
Especially when using filters and interactive elements, the dates sometimes shift by one day. What are best practices to handle this in Power BI?
The problem:
In Power BI Desktop and on the Web Service, birthdays display correctly.
But in the Power BI Mobile app or after refreshing the Web report, the birthday date sometimes shifts by one day (usually minus one day).
I suspect this is due to timezone differences (UTC vs. local timezone).
Solved! Go to Solution.
Hey @Data_Owl2000,
Thank you for the feedback!
Pleasure to help with more detailed steps: -
Deep Diagnostic Steps
Even without full database access, try these:
In Power Query, add this custom column:
= DateTime.From(DateTime.ToText([Birthday], "yyyy-MM-dd") & "T12:00:00Z")
Then convert to Date type. The "T12:00:00Z" forces noon UTC, preventing most timezone shifts.
If using an on-premises gateway:
Create a calculated table in DAX that rebuilds your entire dataset:
CleanedData =
ADDCOLUMNS(
YourTable,
"Birthday_Clean",
DATE(YEAR([Birthday]), MONTH([Birthday]), DAY([Birthday]))
)
If using incremental refresh:
My top recommendation would be the "Force UTC Conversion" method (#3) - it's the most aggressive approach I've seen work for these deep-seated timezone issues. The key is forcing the time to noon UTC during import, which prevents most timezone interpretation problems.
Also, the diagnostic step (#1) is crucial - understanding the exact shift pattern will tell us if this is a consistent timezone offset or something more complex.
If none of these work, this might actually be a Power BI Service bug that needs Microsoft support, especially if the dates are perfect in Power BI Desktop but wrong in the Service.
Did it work? ✔ Give a Kudo • Mark as Solution – help others too!
Best Regards,
Jainesh Poojara | Power BI Developer
Hi @Data_Owl2000 ,
I wanted to follow up and confirm whether you’ve had a chance to review the information shared by @jaineshp , @rohit1991 If you have any questions or need further clarification, please don’t hesitate to reach out.
If you're still encountering any challenges, feel free to let us know we’d be glad to assist you further.
Looking forward to your response.
Best regards,
Lakshmi
Hi @Data_Owl2000 ,
We haven’t heard back from you regarding our last response, so I just wanted to check in to see if you were able to resolve the issue. If you have any further questions or need assistance, please feel free to let us know.
Best Regards,
Lakshmi
Hi @Data_Owl2000 ,
We haven’t heard back from you regarding our last response, so I just wanted to check in to see if you were able to resolve the issue. If you have any further questions or need assistance, please feel free to let us know.
Best Regards,
Lakshmi
Hi jaineshp,
Thanks again for the thorough suggestions — I truly appreciate your persistence and depth here.
Unfortunately, I’ve tested the approaches you outlined (including the more aggressive ones), but the issue still remains:
I tried the Manual Date Reconstruction in Power Query using #date([year], [Month], [Day]) — and set the type to Date— but the shifting still happens in Power BI Service.
I also tested the DateTimeZone conversion method (switching to Date/Time/Timezone, then back to Date), but that didn’t resolve the issue either.
Finally, I applied the DAX fix using DATEVALUE(FORMAT([Birthday], "yyyy-MM-dd")) hoping it would clean the timestamp fully — but the result still behaves inconsistently in the Service.
At this point, I suspect the root cause may lie deeper — possibly in how Power BI Service interprets source datetime values or applies implicit time zone shifts, especially if they're embedded in the original data.
If you have any additional ideas I can use to diagnose the source layer (even without full access), I’m open to trying it.
Thanks again — I really appreciate your support on this frustrating issue!
Best regards,
Data Owl
Hey @Data_Owl2000,
Thank you for the feedback!
Pleasure to help with more detailed steps: -
Deep Diagnostic Steps
Even without full database access, try these:
In Power Query, add this custom column:
= DateTime.From(DateTime.ToText([Birthday], "yyyy-MM-dd") & "T12:00:00Z")
Then convert to Date type. The "T12:00:00Z" forces noon UTC, preventing most timezone shifts.
If using an on-premises gateway:
Create a calculated table in DAX that rebuilds your entire dataset:
CleanedData =
ADDCOLUMNS(
YourTable,
"Birthday_Clean",
DATE(YEAR([Birthday]), MONTH([Birthday]), DAY([Birthday]))
)
If using incremental refresh:
My top recommendation would be the "Force UTC Conversion" method (#3) - it's the most aggressive approach I've seen work for these deep-seated timezone issues. The key is forcing the time to noon UTC during import, which prevents most timezone interpretation problems.
Also, the diagnostic step (#1) is crucial - understanding the exact shift pattern will tell us if this is a consistent timezone offset or something more complex.
If none of these work, this might actually be a Power BI Service bug that needs Microsoft support, especially if the dates are perfect in Power BI Desktop but wrong in the Service.
Did it work? ✔ Give a Kudo • Mark as Solution – help others too!
Best Regards,
Jainesh Poojara | Power BI Developer
Hi Jainesh,
thank you very much for the detailed explanation – it really helps to understand the underlying issue around time zone conversion in Power BI Service.
In my case, I have already adjusted the data type in Power Query and ensured that the birthday column is stored as Dateonly (without any time or timezone component) – showing just the day, month, and year. Despite this, I'm still facing the issue where birthdays are displayed one day earlier in the Power BI Service compared to Power BI Desktop.
Do you have any other ideas what could cause this shift, even though the data type is now strictly Date?
Thanks again for your support!
Best regards,
Data Owl
Hi @Data_Owl2000 ,
That's really puzzling that you're still seeing the date shift even with Date-only format. Let me suggest a few additional checks:
First, verify at source level:
Model-level verification:
Service-specific fix: The Power BI Service might have different regional settings than Desktop. Try:
DAX workaround:
Birthday_Fixed = DATE(YEAR([Birthday]), MONTH([Birthday]), DAY([Birthday]))
This strips any hidden timezone components completely.
Also, have you refreshed the dataset in Service after making the Power Query changes? Old datetime values might be cached.
Let me know if this helps!
Best Regards,
Jainesh Poojara | Power BI Developer
Hi Jainesh Poojara,
Thanks a lot for the detailed suggestions and your time – I really appreciate your structured approach!
Unfortunately, I’ve tested all the methods you mentioned, and the issue still persists:
In Power Query, I added a temporary Birthday column – it visually appears as date-only, but behind the scenes, Power BI still handles it as datetime.
In Model view, I’ve set the column type explicitly to Dateand used a simple format like dd-mm-yyyy– no effect.
In Power BI, I matched the regional settings with Desktop, refreshed the dataset, and re-published – but the problem remains exactly the same. As for the web version, I couldn’t find any specific setting to change the regional configuration — neither via the profile menu nor through the File or Settings options.
Even the DAX workaround: didn't fix it – it still ends up shifting the date
Thanks again!
Best regards,
Data Owl
Hi @Data_Owl2000,
That's incredibly frustrating that the date shift persists! It sounds like a deep-seated issue with the raw data's time component. Since the usual methods aren't working, let's try some more aggressive, less common solutions.
Manual Date Reconstruction: This is often the most reliable method for stubborn date shifts.
In Power Query, select your Birthday column.
Go to Add Column > Date and extract Year, Month, and Day into separate columns.
Add a Custom Column using this formula:
#date([Year], [Month], [Day])
Explicit DateTimeZone Conversion (Advanced):
In Power Query, change your Birthday column's data type to Date/Time/Timezone.
Immediately change it back to Date.
Why it works: Sometimes, forcing Power Query to acknowledge potential time zone data first helps it strip it cleanly when converting to just a date. Ensure your regional settings in Power Query (under "File > Options and settings > Data source settings" or "Global options") match your system.
Force to Text, Then to Date: This is a stronger DAX approach than just using DATE().
Birthday_DAX_Fixed =
DATEVALUE(FORMAT([Birthday], "yyyy-MM-dd"))
Check Gateway Settings: If you use an On-Premises Data Gateway, verify its regional settings on the machine where it's installed. The gateway can sometimes introduce shifts.
Test with a New, Simple File: Create a brand new, minimal Power BI file. Import only the Birthday column, apply the Manual Date Reconstruction (first Power Query point), and publish it. This helps isolate if the issue is with your existing complex model.
Crucial Step: After any change in Power Query or DAX, ensure you refresh the dataset in the Power BI Service and then check the dates in a simple table visual there.
Let me know which of these more robust methods you try and what the result is. This is a tough one, but we'll get it!
Did it work? ✔ Give a Kudo • Mark as Solution – help others too!
Best regards,
Jainesh Poojara / Power BI Developer
Hi @Data_Owl2000 ,
This date shifting is almost always because of time zone conversion when Power BI handles DateTime fields. Here’s what I’ve found works best for birthdays and similar “date-only” fields:
1. Store birthdays as “Date” only (not DateTime): If your data source or Power Query gives you DateTime, convert it to Date right away (in Power Query, just change the type to Date, or use Date.From([Column])). This keeps Power BI from trying to adjust for time zones.
2. Avoid using UTCNOW, NOW, or DateTimeZone functions for birthdays: Those all return times in UTC, which can shift dates when viewed in Service or Mobile.
3. In your model, keep birthday columns as “Date”: Double check this in Power BI—should just be yyyy-mm-dd, not with a timestamp.
4. If you need to check for birthdays today, use:
IsBirthdayToday =
IF(
DAY([Birthday]) = DAY(TODAY()) &&
MONTH([Birthday]) = MONTH(TODAY()),
1, 0
)
5. Mobile/Web tip: Stick with visuals that show only the date, not the full datetime. If your app or source absolutely requires DateTime, add a calculated column for the date part only and use that in your visuals.
This line converts the column to a Date type, which is correct for handling birthdays in Power BI. This removes any time or time zone component and it still not correct 😞
= Table.TransformColumnTypes(#"Entfernte Spalten1",{{"BirthdayDate", type date}})
Hi rohit1991,
thanks for summarizing the best practices so clearly – that’s exactly the approach I’ve been trying to follow.
I’ve already made sure that the birthday column is strictly set to Date(no time component) both in Power Query (type data) and in the model itself – just yyyy-mm-dd. I also avoided using any DataTimenow, UTCNOW, or NOW logic in relation to the birthday data.
Despite all of that, the dates still appear one day earlier in Power BI Service compared to Power BI Desktop. I’m not using any calculated time logic either – just the static birthday values.
Any further suggestions would be much appreciated – this one’s really persistent.
Thanks again!
Best regards,
Data Owl
Hi @Data_Owl2000,
Yes, you're correct — this issue is typically caused by time zone conversion (UTC vs. local time) during data refresh or report rendering.
Store Dates as Date-Only (No Time):
In your source system or Power Query, ensure the Birthday column is strictly a Date type (yyyy-mm-dd) without a time component.
Use DateTimeZone.FixedUtcNow() in Power Query only when needed:
Avoid adding DateTimeZone logic to static date fields like birthdays.
Set Data Type to "Date" (not DateTime):
In Power BI Desktop:
Model View → Birthday Column → Data Type → Date
This tells Power BI not to apply timezone shifts.
Avoid Using UTCNow() or Now() for Date Comparison Against Birthdays:
These return values in UTC and may cause a shift when viewed in different regions.
For Dynamic Date Logic (like upcoming birthdays), use Local Offset Logic:
Birthday_Local = DATE(YEAR(TODAY()), MONTH([Birthday]), DAY([Birthday]))
Mobile & Web Workaround:
Use visuals that display only the date part and avoid datetime formats.
Use DAX to convert datetimes to local dates if needed.
By ensuring birthdays are treated as pure dates and avoiding UTC-based datetime calculations, you can maintain consistency across Desktop, Web, and Mobile views.
I am sure this would definitely help.
Best Regards,
Jainesh Poojara | Power BI Developer