Thanks guys. I just created another invisible date field in the database that stores the date in a set format, and a visible one that stores the date in the user's preferred format. Surprisingly, even if you change the displayed date order of the TDateTimePicker, it doesn't seem to change the format of the actual date value of the picker, so it still matches.
I feel like I'm going to get growled at for something in this, but so far it works...