mIRC Home    About    Download    Register    News    Help

Topic Options
#265137 - 11/03/19 10:44 PM Time conversion from GMT/Zulu to GMT+1
Mike2Mike Offline
Nutrimatic drinks dispenser

Registered: 18/06/17
Posts: 7
Hey Guys,

Is there a way to convert a zulu timestamp (from a variable) to GMT+1?

Current format: 2013-01-10T13:13:13Z (yyyy-mm-dd HH:mm:ss)
Would like to convert to dd.mm.yyyy HH:mm:ss without the "T" and the "Z"

Thanks in advance.

Top
#265138 - 12/03/19 12:24 AM Re: Time conversion from GMT/Zulu to GMT+1 [Re: Mike2Mike]
maroon Offline
Hoopy frood

Registered: 12/01/04
Posts: 1109
This seems to work. The +1 is for the GMT+1, not because of $daylight setting.

Code:
//echo -a $gmt( $calc($ctime($replace(2013-01-10T13:13:13Z,t,$chr(32),z,$chr(32))) - $timezone +1*3600),dd.mm.yyyy HH:nn:ss) 



Since your example used an old date, beware that certain date ranges may be off prior to 2006 due to assuming the current rules were in effect then.

https://forums.mirc.com/ubbthreads.php/topics/264232/$asctime_daylight_rules#Post264232

Top
#265140 - 12/03/19 06:26 AM Re: Time conversion from GMT/Zulu to GMT+1 [Re: maroon]
Mike2Mike Offline
Nutrimatic drinks dispenser

Registered: 18/06/17
Posts: 7
Originally Posted By: maroon
This seems to work. The +1 is for the GMT+1, not because of $daylight setting.

Code:
//echo -a $gmt( $calc($ctime($replace(2013-01-10T13:13:13Z,t,$chr(32),z,$chr(32))) - $timezone +1*3600),dd.mm.yyyy HH:nn:ss) 



Since your example used an old date, beware that certain date ranges may be off prior to 2006 due to assuming the current rules were in effect then.

https://forums.mirc.com/ubbthreads.php/topics/264232/$asctime_daylight_rules#Post264232



Thanks a lot this is working. And thanks for the information regarding the old date smile - i not have any timestamp prior 2010 smile

Top
#265142 - 12/03/19 03:30 PM Re: Time conversion from GMT/Zulu to GMT+1 [Re: maroon]
Mike2Mike Offline
Nutrimatic drinks dispenser

Registered: 18/06/17
Posts: 7
Hey maroon,

one problem come to my attention:
the timestamp will not be converted to normal time (+1) and summertime (daylight saving time / +2) is there any way for this?

e.g. output:
2013-03-10T13:13:13Z => normal time with GMT+1 => (10.03.2013 13:13:13 +0100)
2015-05-28T23:14:41Z => summertime GMT+2 => (28.05.2015 23:14:41 +0200)

Top
#265146 - 12/03/19 11:12 PM Re: Time conversion from GMT/Zulu to GMT+1 [Re: Mike2Mike]
maroon Offline
Hoopy frood

Registered: 12/01/04
Posts: 1109
Right, I noticed this after I posted, and hoped I'd have time to test further before you noticed too. $gmt is behaving like it's just another timezone N hours away from the script, which goes on/off daylight time the same calendar time as you do.

A work-around would be calculating the difference between if hours:minutes on the target day compared to that same hours:minutes for today. If that's a multiple of 86400, then both days are either both inside or both outside summertime, and no adjustment is needed. Depending on whether you're peeking into or out of summertime, you might need to adjust +1 or - 1 hours. There might need further calculation to get the right answer for a short period on the day when the clock gets changed by 1 hour, but I'd need to test to confirm.

https://forums.mirc.com/ubbthreads.php/topics/265145/$gmt(number)

Top
#265191 - 14/03/19 07:04 PM Re: Time conversion from GMT/Zulu to GMT+1 [Re: maroon]
Mike2Mike Offline
Nutrimatic drinks dispenser

Registered: 18/06/17
Posts: 7
Originally Posted By: maroon
Right, I noticed this after I posted, and hoped I'd have time to test further before you noticed too. $gmt is behaving like it's just another timezone N hours away from the script, which goes on/off daylight time the same calendar time as you do.

A work-around would be calculating the difference between if hours:minutes on the target day compared to that same hours:minutes for today. If that's a multiple of 86400, then both days are either both inside or both outside summertime, and no adjustment is needed. Depending on whether you're peeking into or out of summertime, you might need to adjust +1 or - 1 hours. There might need further calculation to get the right answer for a short period on the day when the clock gets changed by 1 hour, but I'd need to test to confirm.

https://forums.mirc.com/ubbthreads.php/topics/265145/$gmt(number)


Okay, after hours of testing, i did not find any working solution to determine if the target (timestamp as above) time is in daylight period or not... did you find any further?

Thank for your help so far.

Top
#265194 - 14/03/19 07:46 PM Re: Time conversion from GMT/Zulu to GMT+1 [Re: Mike2Mike]
maroon Offline
Hoopy frood

Registered: 12/01/04
Posts: 1109
The issue is not whether the target date is inside/outside summertime, but whether it's in the opposite condition as the current time.

Code:
alias datefix {
  var -s %a $replace(2013-01-10T13:13:13Z,t,$chr(32),z,$chr(32))
  var -s %b $date $gettok(%a,2,32)
  var -s %a2 $ctime(%a) , %b2 $ctime(%b)
  var -s %fix $calc( (%b2 - %a2) % 86400)
  return %fix
}


This will return
82800 = today is during summertime, target day is not
0 = today and target day are either both inside or both outside summertime
3600 = target day is within summertime, today is not

And as I mentioned in my post, if either today or the target day, or both, is one of the twice per year day of transition between on/off summertime, it might need further adjustments to the formula.

Top