static void VKUTCToLocalDateTime(Args _args)
{
timeZone timeZone = timeZone::GMT_DUBLIN_EDINBURGH_LISBON_LONDON; // DateTimeUtil::getUserPreferredTimeZone();
utcDateTime standardDateTime = 2019-01-07T07:42:59, // winter time, standard
daylightDateTime = 2019-07-10T10:42:59, // summer time, DST, daylight saving time
localDateTime;
container infoContainer;
utcdatetime dayLightStartDate;
utcdatetime dayLightEndDate;
TimeBias standardBias;
TimeBias dayLightBias;
TimeZoneId timeZoneId;
// Easy conversion to local time
// from UTC to GMT/BST (GB/UK/London);
localDateTime = DateTimeUtil::applyTimeZoneOffset(standardDateTime, timeZone);
localDateTime = DateTimeUtil::applyTimeZoneOffset(daylightDateTime, timeZone);
// Hard way conversion daylightDateTime to local time, but with more control
// Get timezone information container
infoContainer = DateTimeUtil::populateTimeZoneInfo(DateTimeUtil::year(daylightDateTime), timeZone);
dayLightStartDate = conPeek(infoContainer, 1);
dayLightEndDate = conPeek(infoContainer, 2);
standardBias = conPeek(infoContainer, 3);
dayLightBias = conPeek(infoContainer, 4); // cumulative
// substract time bias
// https://stackoverflow.com/questions/2779948/subroutine-to-apply-daylight-bias-to-display-time-in-local-dst
localDateTime = DateTimeUtil::addMinutes(daylightDateTime, -standardBias);
if (daylightDateTime >= dayLightStartDate && daylightDateTime <= dayLightEndDate)
{
localDateTime = DateTimeUtil::addMinutes(localDateTime, -dayLightBias);
}
// UTC date time
standardDateTime = DateTimeUtil::utcNow();
// system date time
standardDateTime = DateTimeUtil::getSystemDateTime();
// Change the timezone information
standardDateTime = DateTimeUtil::removeTimeZoneOffset(localDateTime, timeZone);
localDateTime = DateTimeUtil::applyTimeZoneOffset(standardDateTime, timeZone::GMTPLUS0200HELSINKI_KYIV_RIGA_VILNIUS);
// Timezone
timeZone = DateTimeUtil::getUserPreferredTimeZone();
timeZoneId = DateTimeUtil::getTimeZoneId(timeZone);
// \Classes\RetailTimeZoneInfoJob\updateTimezoneInfoTable
// Standard table TimezoneInfo is populated with timezone information
}
If you found value in what I share, I've set up a Buy Me a Coffee page as a way to show your support.
Buy Me a CoffeeNo comments. Be the first one to comment on this post.
DaxOnline.org is free platform that allows you to quickly store and reuse snippets, notes, articles related to Dynamics 365 FO.
Authors are allowed to set their own "buy me a coffee" link.
Join us.