Emulate the behavior of the USG UXIX daylight variable implemented in glibc.
It is supposed to be 0 if the time zone does not have any daylight saving time
rules and non-zero if there is a time during the year when daylight saving
time applies. [1]

In FreeBSD, tzname[1] should be set to "   " (three spaces) if DST is never
observed. [2]

[1] https://www.gnu.org/software/libc/manual/html_node/Time-Zone-Functions.html#Time-Zone-Functions
[2] https://svnweb.freebsd.org/base/head/contrib/tzcode/stdtime/localtime.c?revision=313774&view=markup#l84

--- lib/ofx_utilities.cpp.orig	2018-05-02 19:39:38 UTC
+++ lib/ofx_utilities.cpp
@@ -142,6 +142,10 @@ time_t ofxdate_to_time_t(const string ofxdate)
   std::time(&temptime);
   local_offset = difftime(mktime(localtime(&temptime)), mktime(gmtime(&temptime)));
   /* daylight is set to 1 if the timezone indicated by the environment (either TZ or /etc/localtime) uses daylight savings time (aka summer time). We use it here to provisionally set tm_isdst. */
+#if defined(__FreeBSD__) || defined(__MidnightBSD__)
+  tzset();
+  int daylight = ((tzname[1][0] == ' ') ? 0 : 1);
+#endif
   time.tm_isdst = daylight;
 
   if (ofxdate.size() != 0)
