[入门] 怎么得到本地时间
tuja
2007-06-23
import std.date; import std.stdio; void main() { long lUtc = getUTCtime(); //得到UTC时间 long lLocal = UTCtoLocalTime(lUtc);//转化成本地时间,可是无效 writefln(lUtc); writefln(lLocal);//打印出的值一样 } 查UTCtoLocalTime的实现: d_time LocalTimetoUTC(d_time t) { return (t == d_time_nan) ? d_time_nan : t - LocalTZA - DaylightSavingTA(t - LocalTZA); } //LocalTZA被定义成0,是这个函数无效的主要原因 d_time LocalTZA = 0; 大家是怎么解决这个时区转换问题的? |
|
oldrev
2007-06-23
api
|
|
tuja
2007-06-25
标准库由教主一个人驱动,而不是由社区驱动,真被它害苦了,这个很小的bug,好几年了还没有修正。可能只是windows下有问题
只好自己写个函数解决: d_time getLocalTime() { DWORD r; TIME_ZONE_INFORMATION tzi; r = GetTimeZoneInformation(&tzi); int b = tzi.Bias; return std.date.getUTCtime() - TicksPerMinute * b; } 使用举例 void main() { d_time l = getLocalTime(); writefln(Day(l)); writefln(HourFromTime(l)); writefln(MinFromTime(l)); } |
|
yeenlai09
2011-03-20
|
|
betty_betty2008
2011-03-21
什么版本的D?如果是D2,你可以:
1.用Johnnathan 新做std.datetime,而std.date将会被前者替代 2.用std.date时需先把std.datebase引入。 |