posts - 211,  comments - 518,  trackbacks - 0

为了精确度反映时间及时区,kbmmw 里面专门有一个单元处理日期时间,由于很多同学习惯了delphi

自带的Tdatetime,使用这个时会有一些疑惑,因此今天就单独说一下这个。

首先kbmmwdatetime 里面使用UTC 时间作为基本计时标准,然后可以转换为其他时区。

Tkbmmwdatetime.Create(now);

这个其实并不是返回我们当前的时区时间。

如果要返回当前时区的时间,有两个方法,

一种是通过ISO8601 标准格式赋值得到,

Tkbmmwdatetime.Create('2018-04-30T13:02:15.417+08:00');

另外一种是通过kbmmw提供的类函数得到

Tkbmmwdatetime.Create( Tkbmmwdatetime.Now) ;

现在通过以下代码说明。

 

procedure TForm1.Button1Click(Sender: TObject);
var
    t1:Tkbmmwdatetime;

    t2:Tkbmmwdatetime;


begin
     t1:=Tkbmmwdatetime.Create('2018-04-30T15:27:15.417+08:00');

    memo1.Lines.Add('IOS8601:'+t1.GetISO8601dateTime)  ;

    memo1.Lines.Add('fixedlocal:'+t1.GetFixedLocalDateTime) ;

    memo1.Lines.Add('fixedUTC:'+t1.GetFixedUTCDateTime) ;

     memo1.Lines.Add('TimeZone:'+t1.GetTimeZone ) ;

    memo1.Lines.Add('=========================');



    t2:=Tkbmmwdatetime.Create( Tkbmmwdatetime.Now) ;
     memo1.Lines.Add('iso8601:'+t2.GetISO8601dateTime)  ;

    memo1.Lines.Add('fixedlocal:'+t2.GetFixedLocalDateTime) ;

    memo1.Lines.Add('fixedUTC:'+t2.GetFixedUTCDateTime) ;

     memo1.Lines.Add('TimeZone:'+t2.GetTimeZone ) ;

    memo1.Lines.Add('RFC123UTC:'+t2.GetRFC1123UTCDateTime ) ;

    memo1.Lines.Add('RFC123:'+t2.GetRFC1123DateTime) ;


    memo1.Lines.Add('NCSA'+ t2.GetNCSADateTime )  ;

    memo1.Lines.Add('dayofweek:'+ kbmMWRFC1123DayNames[t2.DayOfWeek()]) ;

end;

运行结果

 

posted on 2018-04-30 15:32 xalion 阅读(...) 评论(...) 编辑 收藏