Mercurial Hosting > luan
diff src/luan/modules/Time.luan @ 1546:2b4471d310b3
better time zone handling
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 22 Sep 2020 21:41:22 -0600 |
parents | 8d95711f6615 |
children |
line wrap: on
line diff
--- a/src/luan/modules/Time.luan Sun Sep 20 21:09:19 2020 -0600 +++ b/src/luan/modules/Time.luan Tue Sep 22 21:41:22 2020 -0600 @@ -44,22 +44,20 @@ return Table.unpack(rtn) end --- Time.time_zone set for other than default - -function Time.get_time_zone() - local tz = Time.time_zone and TimeZone.getTimeZone(Time.time_zone) or TimeZone.getDefault() +function Time.get_time_zone(name) + local tz = name and TimeZone.getTimeZone(name) or TimeZone.getDefault() return tz.getID().." - "..tz.getDisplayName() end -local function set_time_zone(fmt) - Time.time_zone and fmt.setTimeZone( TimeZone.getTimeZone(Time.time_zone) ) +local function set_time_zone(fmt,time_zone) + time_zone and fmt.setTimeZone( TimeZone.getTimeZone(time_zone) ) end -function Time.format(time,pattern) +function Time.format( time, pattern, time_zone ) time = long(time) pattern = pattern or "yyyy-MM-dd HH:mm:ss" local fmt = SimpleDateFormat.new(pattern) - set_time_zone(fmt) + set_time_zone(fmt,time_zone) return fmt.format(Date.new(time)) end @@ -82,9 +80,9 @@ return cal.getTimeInMillis() end -function Time.parse( pattern, source ) +function Time.parse( pattern, source, time_zone ) local fmt = SimpleDateFormat.new(pattern) - set_time_zone(fmt) + set_time_zone(fmt,time_zone) return fmt.parse(source).getTime() end