I am working on an application that can be seen in many countries of the world. There are not many countries that show hours, minutes and seconds with something else except: as a seperator, but there are several, and I want to make sure that the times are formatted correctly for their region. DateTime works fine, but TimeSpan doesn't. These fragments are from my direct window in Visual Studio 2010 using .Net 4 with my region set to Malayalam (India). The call to dateTime.Now also reflects the time displayed on my watch, Microsoft Outlook, and other areas.
DateTime.Now.ToString() "02-10-12 17.00.58"
http://msdn.microsoft.com/en-us/library/dd784379.aspx Says: "If formatProvider is null, the DateTimeFormatInfo object associated with the current culture is used. If the format is the usual format format, the formatProvider parameter is ignored." Of course, I donβt even need to go to Current CultureInfo. The format I want here is hh.mm.ss, but obvioulsy hh: mm: ss, when in most other languages, and if there are other other features, it should automatically reflect them too - basically TimeSpan should be Culturally conscious , just like DateTime.
But:
timeRemaining.ToString() "00:02:09" timeRemaining.ToString("c") "00:02:09" timeRemaining.ToString("c", CultureInfo.CurrentCulture) "00:02:09" timeRemaining.ToString("g") "0:02:09" timeRemaining.ToString("G") "0:00:02:09.0000000" timeRemaining.ToString("t") "00:02:09" timeRemaining.ToString("g", CultureInfo.CurrentCulture) "0:02:09" timeRemaining.ToString("g", CultureInfo.CurrentUICulture) "0:02:09" timeRemaining.ToString("G", CultureInfo.CurrentUICulture) "0:00:02:09.0000000" timeRemaining.ToString("G", CultureInfo.CurrentCulture) "0:00:02:09.0000000" timeRemaining.ToString("t", CultureInfo.CurrentCulture) "00:02:09"
I am looking for a simple, single line to output timeSpan in a culturally-conscious manner. Any ideas are welcome.
CHRISTOPHER MARTIN
source share