The doco for TimeSpan.Parse(String)
http://msdn.microsoft.com/en-us/library/se73z7b9(v=vs.110).aspx does not explicitly say what culture is used.
Asked
Active
Viewed 307 times
-3

Simon
- 33,714
- 21
- 133
- 202
1 Answers
2
Short answer - System.Threading.Thread.CurrentThread.CurrentCulture;
Long answer - Source will tell you the truth:
public static TimeSpan Parse(String s) {
/* Constructs a TimeSpan from a string. Leading and trailing white space characters are allowed. */
return TimeSpanParse.Parse(s, null);
}
and couple methods deep into the code:
public static DateTimeFormatInfo GetInstance(IFormatProvider provider) {
// Fast case for a regular CultureInfo
DateTimeFormatInfo info;
CultureInfo cultureProvider = provider as CultureInfo;
if (cultureProvider != null && !cultureProvider.m_isInherited)
{
return cultureProvider.DateTimeFormat;
}
// Fast case for a DTFI;
info = provider as DateTimeFormatInfo;
if (info != null) {
return info;
}
// Wasn't cultureInfo or DTFI, do it the slower way
if (provider != null) {
info = provider.GetFormat(typeof(DateTimeFormatInfo)) as DateTimeFormatInfo;
if (info != null) {
return info;
}
}
// Couldn't get anything, just use currentInfo as fallback
return CurrentInfo;
}
CurrentInfo
defined as follows:
public static DateTimeFormatInfo CurrentInfo {
get {
Contract.Ensures(Contract.Result<DateTimeFormatInfo>() != null);
System.Globalization.CultureInfo culture = System.Threading.Thread.CurrentThread.CurrentCulture;
if (!culture.m_isInherited) {
DateTimeFormatInfo info = culture.dateTimeInfo;
if (info != null) {
return info;
}
}
return (DateTimeFormatInfo)culture.GetFormat(typeof(DateTimeFormatInfo));
}
}

MarcinJuraszek
- 124,003
- 15
- 196
- 263