Skip to main content
Question

Mobile App ignores UseTimeZone = false and converts DateTime to UTC/Local Time

  • January 29, 2026
  • 1 reply
  • 15 views

Forum|alt.badge.img+2

Hi everyone,

I’m facing a discrepancy between the Acumatica Browser UI and the Mobile App regarding a DateTime field.

The Setup: I have a field defined in my DAC as follows:
#region StartDate
public abstract class startDate : PX.Data.BQL.BqlDateTime.Field<startDate> { }
[PXDBDateAndTime(DisplayNameDate = "Date", DisplayNameTime = "Time", UseTimeZone = false)]
[PXUIField(DisplayName = "Start Date", Enabled = false)]
public virtual DateTime? StartDate { get; set; }
#endregion
In the Browser: The field displays the exact value stored in the database, which is the desired behavior because UseTimeZone = false.

In the Mobile App: The field appears to be converted to Universal Time (UTC) or adjusted based on the device's time zone, even though it should display the "raw" database value.

How can I force the Mobile App to display the "Wall Clock Time" (the exact value from the DB) without any time zone transformations, keeping it consistent with the browser's behavior? Is there a specific MSDL (Mobile Screen DSL) property or a DAC attribute adjustment that ensures the API sends the date as a "naive" timestamp?

1 reply

Forum|alt.badge.img

@bihalivan15
 

Acumatica Mobile Framework always treats DateTime values coming from the REST API as timezone-aware and converts them on the device. UseTimeZone = false only affects server + browser UI rendering, not the mobile client.

So what you’re seeing is expected behavior:

  • Browser UI → respects UseTimeZone = false and shows the DB “wall clock”.

  • Mobile App → REST serializes DateTime, mobile assumes it’s UTC / TZ-aware, then applies device timezone.
    Store “wall clock” as Date + Time separately

     

    [PXDBDate]
    public DateTime? StartDate { get; set; }

    [PXDBTime]
    public DateTime? StartTime { get; set; }

     

    Mobile does not timezone-shift:

  • PXDBDate

  • PXDBTime

  • Then combine logically when needed.