Dynamics 365/Ax – DateTimeUtil Sınıfı

19 Ağu

Merhaba arkadaşlar,
Uzun zamandır aklımda olan fakat bir türlü yazma fırsatı bulamadığım DateTimeUtil class’ının belli başlı methodlarının kullanımından bahsedeceğim.

DateTimeUtil classı, Dynamics 365/Ax içinde hazır olarak gelen tarihlerle ilgili tüm işleri yapmamızı sağlayan hazır sınıftır.

Aşağıda, sık kullandığım methodları açıklamaları ile yazdım:

class SCDateTimeExample
{
    /// <summary>
    /// Runs the class with the specified arguments.
    /// </summary>
    /// <param name = "_args">The specified arguments.</param>
    public static void main(Args _args)
    {
        UtcDateTime             utcNow;
        UtcDateTime             utcNowTimeZone;
        UtcDateTime             utcAnHourLater;
        Transdate               transdate;
        Transdate               transDateStartYear;
        ;

        //Bugünün tarihi ve saatini döner.
        utcNow  = DateTimeUtil::utcNow();
        
        //UtcDateTime alır, tarih olarak döner.
        transdate   = DateTimeUtil::date(utcNow);

        info(strFmt("Bugün tarih ve saati: %1", utcNow));
        info(strFmt("Bugün tarih: %1", transdate));
        
        info(strFmt("Şuanın saati: %1", DateTimeUtil::hour(utcNow)));
        info(strFmt("Şuanın dakikası: %1", DateTimeUtil::minute(utcNow)));
        info(strFmt("Şuanın saniyesi: %1", DateTimeUtil::second(utcNow)));
        info(strFmt("Şuanın salisesi: %1", DateTimeUtil::time(utcNow)));
        
        info(strFmt("Tarihin günü: %1", DateTimeUtil::day(utcNow)));
        info(strFmt("Tarihin ayı: %1", DateTimeUtil::month(utcNow)));
        info(strFmt("Tarihin yılı: %1", DateTimeUtil::year(utcNow)));

        info(strFmt("Maxiumum tarih: %1", DateTimeUtil::maxValue()));
        info(strFmt("Minimum tarih: %1", DateTimeUtil::minValue()));

        //---Tarih manipüle işlemleri
        //Yeni tarih ve saat yapmaya yarar. TimeZone belirtilebilir.
        //Böylece server saatinden bağımsız tarih saat belirtilebilir.
        utcNowTimeZone = DateTimeUtil::newDateTime(today(),
                                                  timeNow(),
                                                  TimeZone::GMTPLUS0300ISTANBUL);

        //Yukarıda manuel yaptığımız işlemi yapar: Verilen TimeZone göre, tarih ve saati ayarlayıp döner;
        info(strFmt("DateTimeUtil::applyTimeZoneOffset: %1",DateTimeUtil::applyTimeZoneOffset(utcNow, Timezone::GMTPLUS0300ISTANBUL)));
        
        //UtcDateTime'a saat ekler.
        //Bu örnekte şimdiki saate 1 saat ekledik.
        utcAnHourLater = DateTimeUtil::addHours(utcNowTimeZone, 1);

        info(strFmt("utcAnHourLater: %1", utcAnHourLater));

        info(strFmt("Aktif şirketin timezone bilgisi: %1", DateTimeUtil::getCompanyTimeZone()));
        info(strFmt("Axa bağlı kullanıcının timezone bilgisi: %1", DateTimeUtil::getUserPreferredTimeZone()));
        info(strFmt("Client makinesinin timezone bilgisi: %1",DateTimeUtil::getClientMachineTimeZone()));
        info(strFmt("Verilen tarihin timezone bilgisi: %1",DateTimeUtil::getOriginatingTimeZone(utcNow)));
    }
}

DateTimeUtil::add ile ilgili kodta sadece saat eklemeyi örnek verdim. Ancak resimde görebileceğiniz üzre, dakika, saniye vs de eklemeler yapabiliyoruz.

Ben belli başlı sık kullanılan methodlara yer vermeye çalıştım, umarım faydalı olur.
Herkese iyi çalışmalar dilerim. Sağlıcakla.

Tüm methodların listesi ve daha fazla detay için bu sayfaya göz atabilirsiniz.
https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/dev-ref/system-classes/datetimeutil-class

Bir Cevap Yazın