Subject: Re: [boost] Cross-platform date/time problems
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2009-11-02 13:38:21
Zachary Turner wrote:
>> Anyway, I don't think that bringing Windows-specific code to other
>> platforms is a good idea. If you want cross-platform code, use
>> cross-platform types, such as time_t, ptime or local_time.
> That's just it, I'm trying to use ptime.
Then why not simply send ptime over the network?
> A conversion has to exist
> somewhere, why shouldn't it exist in boost rather than me duplicating code
> for no particular benefit? If I decide that a unix epoch based time is
> going to be my "cross-platform network format" when I serialize /
> deserialize then I lose precision on Windows. If I decide that a windows
> epoch based time is going to be my cross platform network format, then I
> have to make an almost exact duplicate of the from_ftime function.
That choice is up to you. However, as I implied earlier, I see no point
in using platform-dependent types in a cross-platform code, except for
the lower-level wrappers around the native OS API.
> Besides, my application does raw parsing of an NTFS filesystem. You can
> have NTFS filesystems on Linux. Usually the APIs abstract the fact that
> times are stored internally in the filesystem in FILETIME format, but that's
> no longer the case when you have raw access to the file systme.
I can't comment on that as I'm not aware of NTFS internals. I'm not the
maintainer of Boost.DateTime, but this use case doesn't convince me as
it looks too exotic to me.