Dynamics AX在不同時區完美工作的能力背後的秘密是其utcDateTime數據類型。它將日期,TimeOfDay和時區信息組合到一個數據類型中,使顧問能夠以更接近我們在日常生活中思考時間的方式來實現與日期和時間相關的要求。與AX中的其他數據類型一樣,utcDateTime也可以根據需要擴展,並用作數據庫字段的後備類型。
utcDateTime transDateTime;
transDateTime = utcDateTimeNull();
transDateTime = DateTimeUtil :: utcNow();
transDateTime = DateTimeUtil :: getSystemDateTime();
utcNow方法在不應用任何時區偏移的情況下返回服務器上的當前系統時間。因此,此方法返回的日期/時間可能與您在計算機上看到的時間不匹配。
getSystemDateTime方法返回可以使用”文件”>“工具”>“會話日期和時間”對話框設置的會話日期/時間。
newDateTime方法使用指定的日期,TimeOfDay和時區參數實例化日期/時間。指定的時區偏移量將從結果日期/時間中刪除。
secondsElapsed = 14 * 60 * 60; // 02:00 PM
userTimeZone = DateTimeUtil :: getUserPreferredTimeZone();
transDateTime = DateTimeUtil :: newDateTime(today(),secondsElapsed);
transDateTime = DateTimeUtil :: newDateTime(today(),secondsElapsed,userTimeZone);
界線
最小值是1900-01-01T00:00:00,最大值是2154-12-31T23:59:59。請注意,utcDateTimeNull函數和minvalue方法返回相同的值。
transDateTime = DateTimeUtil :: minvalue();
transDateTime = DateTimeUtil :: maxvalue();
日期和時間組成
您可以按照以下步驟從utcDateTime值中提取日期成分(日,月,年)和時間成分(時,分,秒)。
info(strFmt(“%1”,DateTimeUtil :: date(transDateTime)));;
info(int2str(DateTimeUtil :: time(transDateTime)));;
info(int2str(DateTimeUtil :: day(transDateTime)));;
info(int2str(DateTimeUtil :: month(transDateTime)));;
info(int2str(DateTimeUtil :: year(transDateTime)));;
info(int2str(DateTimeUtil :: hour(transDateTime)));;
info(int2str(DateTimeUtil :: minute(transDateTime)));;
info(int2str(DateTimeUtil :: second(transDateTime)));;
處理日期和時間部分
您可以如下添加或減去秒,分鐘,小時,天,月和年。
transDateTime = DateTimeUtil :: addSeconds(transDateTime,60);
transDateTime = DateTimeUtil :: addMinutes(transDateTime,719);
transDateTime = DateTimeUtil :: addHours(transDateTime,36);
transDateTime = DateTimeUtil :: addDays(transDateTime,28);
transDateTime = DateTimeUtil :: addMonths(transDateTime,11);
transDateTime = DateTimeUtil :: addYears(transDateTime,-1);
info(int642str(DateTimeUtil :: getDifference(transDateTime,DateTimeUtil :: minValue())));;
getDifference方法返回指定的兩個utcDateTime值之間的秒數。
轉換次數
utcDateTime到str的轉換可以如下進行。
dateTimeStr = DateTimeUtil :: toStr(transDateTime);
dateTimeStr = DateTimeUtil :: toFormattedStr(transDateTime,231,DateDay :: Digits2,DateSeparator ::連字符,DateMonth :: Short,DateSeparator :: Hyphen,DateYear :: Digits4,TimeSeparator :: Colon,TimeSeparator :: Colon,DateFlags :: None );
toStr方法返回yyyy-mm-ddThh:mm:ss格式的字符串,這是X ++編譯器可以識別的格式。
留言列表