digitalmars.D.learn - Getting the current datetime converted into a string for writing to
- Gary Miller (26/26) Mar 28 2014 I've been reading through and trying various code fragments to
- Gary Willoughby (13/23) Mar 29 2014 This is the easiest way i know.
- Andre Artus (7/31) Mar 30 2014 Considering the international spread of D users I find it
- Jonathan M Davis (18/21) Mar 30 2014 If could go back, there wouldn't even be anything to localize. toSimpleS...
- Kagamin (9/12) Mar 31 2014 Formatting should confined to presentation tier: GUI controls,
- Gary Willoughby (3/6) Mar 29 2014 Here's a good primer on the datetime module:
I've been reading through and trying various code fragments to pull the system date/time in and format it as a string for display on the console. I only need it down to the second and from my current machine so I don't need to use any of the more accurate clocks used for benchmarking right now. All the examples seem to be setting the date or date time to some predetermined value instead of pulling it from the system. It seems like this would be a very common function to use so I know I must be making this a lot harder than it really is. Oh and before I forget I'd like to thank everybody on the forum for their great support. I'm still a newbie at D. I've bought the book. I've watched the YouTube videos and now I'm starting to get a lot more comfortable with the code but it feels like it's going to take me some time to figure out the tricks for using all the library functions. I started out trying to use strings for everything but quickly found that my code is doing a lot of string modification concatenation and I had to switch to char[] instead to get around the immutability but now a lot of the library functions use the string data type so I am having to figure out how to convert between back and forth between all the different datatypes. It would be nice if all the primitive datatypes had a consistent toString cast or function but since I'm not seeing those I guess writeFormatted must be the preferred way of getting values into string format.
Mar 28 2014
On Saturday, 29 March 2014 at 05:01:14 UTC, Gary Miller wrote:I've been reading through and trying various code fragments to pull the system date/time in and format it as a string for display on the console. I only need it down to the second and from my current machine so I don't need to use any of the more accurate clocks used for benchmarking right now.This is the easiest way i know. import std.stdio; import std.datetime; void main(string[] args) { writeln(Clock.currTime.toLocalTime.toSimpleString); }It would be nice if all the primitive datatypes had a consistent toString cast or function but since I'm not seeing those I guess writeFormatted must be the preferred way of getting values into string format.See std.conv and the 'to' function. data.to!(string) data.to!(int) etc...
Mar 29 2014
On Saturday, 29 March 2014 at 05:01:14 UTC, Gary Miller wrote: -- SNIP -- I only need it down to the second and from my current machine so I don't need to use any of the more accurate clocks used for benchmarking right now.On Saturday, 29 March 2014 at 09:30:44 UTC, Gary Willoughby wrote: This is the easiest way i know. import std.stdio; import std.datetime; void main(string[] args) { writeln(Clock.currTime.toLocalTime.toSimpleString); }toSimpleString (and toString) returns a string with fractional seconds; which I suspect is not what Gary Miller wants.Considering the international spread of D users I find it surprising that the date & time formatting functions in phobos are not localizable. When working in Windows I prefer to wrap GetDateFormatEx, but it would be nice to have an OS agnostic version.It would be nice if all the primitive datatypes had a consistent toString cast or function but since I'm not seeing those I guess writeFormatted must be the preferred way of getting values into string format.See std.conv and the 'to' function. data.to!(string) data.to!(int) etc...
Mar 30 2014
On Sunday, March 30, 2014 08:25:42 Andre Artus wrote:Considering the international spread of D users I find it surprising that the date & time formatting functions in phobos are not localizable.If could go back, there wouldn't even be anything to localize. toSimpleString is there because it was in Boost (and it's what toString uses), but by having _three_ different string functions for each type instead of just ISO and ISO Extended. So, that's arguably bad - certainly it overcomplicates things IMHO. And toSimpleString uses English names for the months which is _definitely_ bad, because it opens up the question of localization, which I see no reason to deal with in this context, especially because it opens up a huge can of worms. By sticking to ISO and ISO Extended, we'd be completely standards compliant and would avoid the whole localization issue entirely. As it stands, we just acknowledge that it's stupid that toSimpleString is there (thereby introducing the question of localization) and have agreed that localization is outside the scope of std.datetime. Unfortunately, removing toSimpleString would obviously break code, and changing toString to do the same as toISOExtString (as it probably should) could also break code if there's code in the wild which relies on the exact format of toString. So, we're kind of stuck. - Jonathan M Davis
Mar 30 2014
On Sunday, 30 March 2014 at 08:25:43 UTC, Andre Artus wrote:Considering the international spread of D users I find it surprising that the date & time formatting functions in phobos are not localizable.Formatting should confined to presentation tier: GUI controls, web page generation and must not escape it the rest of code, localized formatting freely used in the whole codebase is a bad idea. Console output is often implied to be technical and even machine-readable, it's a bad idea to localize it. Deep integration of localization in e.g. .net causes lots of pain, the deeper it is, the more pain in the ass it causes, to the point of throwing exceptions with machine-translated error messages.
Mar 31 2014
On Saturday, 29 March 2014 at 05:01:14 UTC, Gary Miller wrote:I've been reading through and trying various code fragments to pull the system date/time in and format it as a string for display on the console.Here's a good primer on the datetime module: http://dlang.org/intro-to-datetime.html
Mar 29 2014