Currently, I have a "date" type question in all of my surveys where a field technician can input the day that they completed their service. Our review team is mostly located overseas and will review the survey before submitting it to become a pdf report.
The issue I'm seeing is on my report, the date of service is shifted forward a day. There is a date type question for the reviewer that is not shifted forward on the report, so I'm assuming it's got something to do with the time zone they're in, versus the time zone the field technician was in when originally completing the survey. I really need this date to read correctly due to our quality standards.
Since my review team is from different time zones (some are here in the USA, most are in Malaysia), simply putting an offset in the custom report doesn't seem like it would suffice. Is there something else I could do?
Picture of the xls form:
Picture of the dates from Survey123.arcgis:
Picture of the report output:
Picture of the same report output, but from me instead of the Malaysian reviewer:
Solved! Go to Solution.
Timezone changes. How are you generating reports?
If via something like Power Automate, you can dump the UTC correction directly into the flow:
You can also do this directly in the report with utcOffset (more info here)
$($date | utcOffset:"+08:00"}
If you have multiple UTC Offsets, you can nest these within IF() statements.
${if utc_offset==8}$($date | utcOffset:"+08:00"}${/}${if utc_offset==9}$($date | utcOffset:"+09:00"}${/}
EDIT: I should mention that of course need a source for the UTC Zone... I add these to all my surveys since I work across ~8 time zones.
${header_utc_offset_pa} is designed specifically to be used in Power Automate, and is just a big nested IF() statement.
if(${header_utc_offset}='-2','-02:00',if(${header_utc_offset}='-2.5','-02:30',if(${header_utc_offset}='-3','-03:00',if(${header_utc_offset}='-3.5','-03:30',if(${header_utc_offset}='-4','-04:00',if(${header_utc_offset}='-5','-05:00',if(${header_utc_offset}='-6','-06:00',if(${header_utc_offset}='-7','-07:00',if(${header_utc_offset}='-8','-08:00',if(${header_utc_offset}='-9','-09:00',if(${header_utc_offset}='-10','-10:00','')))))))))))
Timezone changes. How are you generating reports?
If via something like Power Automate, you can dump the UTC correction directly into the flow:
You can also do this directly in the report with utcOffset (more info here)
$($date | utcOffset:"+08:00"}
If you have multiple UTC Offsets, you can nest these within IF() statements.
${if utc_offset==8}$($date | utcOffset:"+08:00"}${/}${if utc_offset==9}$($date | utcOffset:"+09:00"}${/}
EDIT: I should mention that of course need a source for the UTC Zone... I add these to all my surveys since I work across ~8 time zones.
${header_utc_offset_pa} is designed specifically to be used in Power Automate, and is just a big nested IF() statement.
if(${header_utc_offset}='-2','-02:00',if(${header_utc_offset}='-2.5','-02:30',if(${header_utc_offset}='-3','-03:00',if(${header_utc_offset}='-3.5','-03:30',if(${header_utc_offset}='-4','-04:00',if(${header_utc_offset}='-5','-05:00',if(${header_utc_offset}='-6','-06:00',if(${header_utc_offset}='-7','-07:00',if(${header_utc_offset}='-8','-08:00',if(${header_utc_offset}='-9','-09:00',if(${header_utc_offset}='-10','-10:00','')))))))))))
I currently use Make instead of Power Automate, but it appears to function similarly. I see there's a UTC Offset field that's currently empty.
If I'm reading everything correctly, the UTC offset is specifically for the zone I wish to show on the report, not the offset from the zone the report was generated? As in, if I put an offset of "-06:00", the report would show the same time/date no matter who generates it?
Correct.
Whereas I want the timezone local to the user, I collect the local timezone in S123, and use a formula to generate the value for that cell.
I work in one time zone but still prefer this method, mostly because of daylight savings. I capture it in the Survey123 form so I can just directly feed the value into Automate from the survey response.
The way utcOffset captures it (-4) compared to what the expected format is (-08:00) drives me absolutely nuts, I don't understand why it's done this way.
The way utcOffset captures it (-4) compared to what the expected format is (-08:00) drives me absolutely nuts, I don't understand why it's done this way.
I 100% dumped utcOffset into Power Automate as-is when I first started using it, and was very confused why it didn't just work. Sigh.
I may be having a similar issue. This has only just started happening, but when I read data captured through a survey123 web form, the date is coming through differently than a few weeks ago when reading using FME.
The field is DateOnly in the web form and used to come through like 20240904000000 in FME. Its now coming through as 20241002230000 (2nd October) event though 3rd October was selected in the form.
This must be related to New Zealand changing to daylight savings time a few days ago. I'm not sure though why the data isn't automatically adjusted when read by FME?
Worked out my problem. When putting a date only value in S123, it would set the default time as 12pm. Because NZST is +12 hours from UTC, when I read it in FME it was coming through as 12am on the same day. Now NZ is in daylight savings time, it was taking 13 hours off and going back to the previous day.
I got around this in FME by adding 12 and a half hours to the date which got it back to almost the original time (averaged NZST and NZDT of +12 and +13 hours which will be close enough).
Also had the same problem in Survey123 report templates generated via FME but found I could add a time offset to any date fields in the report template which fixed that.