time_t to simple date string conversion

Jonathan M Davis jmdavisProg at gmx.com
Tue Apr 5 14:59:07 PDT 2011


> I'm reading documentation on std.datetime, and it appears there are
> added features that I don't have in 2.51 (Linux). Did features like
> 'SysTime' get added after 2.51?
> 
> Does anybody have a one-liner to convert a time_t to a date string that
> should work for me?

std.datetime was completely revamped with 2.52. What existed from in 2.51 has 
little to do with what's in 2.52, and it wasn't even publically documented 
anyway. So, if you're using 2.51, you're still stuck using std.date, which is 
rather broken. I'd definitely recommend that you upgrade to 2.52 if you're 
still using 2.51.

If you're using 2.51 and for some reason can't upgrade, then I'd recommend 
that you just use the standard C functions. That would be less error-prone 
than trying to use std.date, which is scheduled for deprecation anyway.

And assuming that you can't upgrade, if the reason for that is because you're 
installed dmd with your distro, I'd recommend uninstalling it and just 
downloading the zip file from the main site. Your distro is not likely to keep 
dmd as up-to-date as downloading it yourself will, and it improves too quickly 
to stick with a version which is months old. It's easy to use the zip. All you 
have to do is unzip it to wherever you want to unzip it, and the add 
/path/to/unzipped/dmd2/linux/bin to your path, and it works (unless you're on 
a 64-bit box, then you need to install certain 32-bit packages, but it's a 
fairly short list, and if your distro actually includes a package for dmd, 
then it should be easy to figure out what they are by looking at the 
dependencies for that package).

In any case, prior to dmd 2.52, there effectively was no std.datetime. The 
date stuff was the rather buggy std.date, which is now scheduled for 
deprecation. So, either you need to upgrade to 2.52, use std.date, or use the 
standard C functions.

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list