How to add 3 hours by calculate on a time question type

What is the problem? Please be detailed.
Hi all,

im using the time question type to collect appointment times but, if i select 13:45 in the ODK form the when I see the csv file the time is 3 hours before, it happens with all devices. I've read that the app software always translate the time to the 0GMT time, because I am in Athens (+3GMT) all times are 3 hours earlier than they should be. I was thinking about introduce a calculate row to add this 3 hours but I dont know how can I set this calculation...
If there is an easier way to solve this I'll be happy to hear!

What ODK tool and version are you using? And on what device and operating system version?
1.8.1

What steps can we take to reproduce the problem?

What you have you tried to fix the problem?

Anything else we should know or have? If you have a test form or screenshots or logs, attach here.

I think it may be hard to use a calculate inside the form to do what you're asking. But if someone knows a way, I'd be interested to learn.

Can you do some post-processing on the data and would an Excel formula work for your needs? If so, what is the exact format of the time value in the csv? When testing on an old formhub (yes, we need to update) instance a time question yields data in the csv export like [ 18:15:00.000-04 ].

An alternative option would be to use either integer type or select_one questions in a group to collect the hours and minutes of the appointment. This might actually be faster for the users than the time widget.

+--------------------+-------------+--------+------------+---------------+
|        type        |    name     | label  | appearance |  constraint   |
+--------------------+-------------+--------+------------+---------------+
| begin group        | appt-time_1 |        | field-list |               |
| select_one hours   | hour        | Hour   | minimal    |               |
| select_one minutes | min         | Minute | minimal    |               |
| end group          |             |        |            |               |
| begin group        | appt-time_2 |        | field-list |               |
| integer            | hour_2      | Hour   |            | .<24          |
| integer            | min_2       | Minute |            | .>=0 and .<60 |
| end group          |             |        |            |               |
+--------------------+-------------+--------+------------+---------------+

For the second example you would maybe want to include constraint messages, as well as a note explaining that they should be sure to input using the 24-hour time format (and not the 12-hour time format). Or you could include a third select_one with an AM / PM choice.

The first example has the added benefit of being able to restrict to a given interval of hours (for example, only business hours) and given minute increments.

2 Likes

Thank you very much Dan!