[Mono-dev] DateTime.Parse difference with .NET

Atsushi Eno atsushi at ximian.com
Tue Aug 9 00:30:19 EDT 2005


Hello,

Martin Hinks wrote:
> using System;
> 
> namespace DateFail
> {
> 	class MainClass
> 	{
> 		public static void Main(string[] args)
> 		{
> 			DateTime.Parse("17/07/2005 00:00:00");
> 		}
> 	}
> }
> 
> .NET Framework 1.1 result: Success
> Mono 1.1.8 result: 
> 
> Unhandled Exception: System.FormatException: String was not recognized as 
> a vali
> d DateTime.
> in <0x000e5> System.DateTime:Parse (System.String s, IFormatProvider fp, 
> DateTim
> eStyles styles)
> in <0x00016> System.DateTime:Parse (System.String s, IFormatProvider fp)
> in <0x00013> System.DateTime:Parse (System.String s)
> in <0x00013> DateFail.MainClass:Main (System.String[] args)
> 
> I submitted it to BugZilla - just wanted to make sure I'm not doing
> anything stupid and also wondered if someone had a workaround?

In fact using DateTime.Parse() is somewhat stupid ;-) Read here:

http://msdn.microsoft.com/msdnmag/issues/05/03/CultureInfo/default
.aspx?side=true#a

	The DateTime.Parse method in the Microsoft .NET Framework
	has goals much like its predecessors, but unfortunately it
	suffers from some of the same problems. The code is slower
	since the extra checking takes time, and there will always
	be some new format that is not properly detected. In those
	older products, you may remember, the behavior was sometimes
	disparagingly referred to as "evil date parsing."

At least DateTime.Parse() is COM dependent where the behavior is
totally unpredictable and not countable from DateTimeFormatInfo.

Atsushi Eno



More information about the Mono-devel-list mailing list