I tried the following:
String dts = String.Format("{0}-{1}-{2}", DateTime.MinValue.Day,
DateTime.MinValue.Month, DateTime.MinValue.Year);
DateTime dt = DateTime.Parse(dts);
dts becomes "1-1-1" but dt becomes "01-01-2001".
Shouldn't the minimum year be "0001" which is what I get when i do
DateTime dt = new DateTime();
The following should illustrate problem and solution:
using System;
namespace E
{
public class Program
{
public static void Main(string[] args)
{
DateTime dt0 = new DateTime();
Console.WriteLine(dt0);
String dt1s = String.Format("{0}-{1}-{2}",
DateTime.MinValue.Day, DateTime.MinValue.Month, DateTime.MinValue.Year);
Console.WriteLine(dt1s);
DateTime dt1 = DateTime.Parse(dt1s);
Console.WriteLine(dt1);
String dt2s = String.Format("{0:00}-{1:00}-{2:0000}",
DateTime.MinValue.Day, DateTime.MinValue.Month, DateTime.MinValue.Year);
Console.WriteLine(dt2s);
DateTime dt2 = DateTime.Parse(dt2s);
Console.WriteLine(dt2);
String dt3s = String.Format("{0}-{1}-{2}",
DateTime.MinValue.Day, DateTime.MinValue.Month, DateTime.MinValue.Year);
Console.WriteLine(dt3s);
DateTime dt3 = DateTime.ParseExact(dt3s, "d-M-y", null);
Console.WriteLine(dt3);
String dt4s = String.Format("{0:00}-{1:00}-{2:0000}",
DateTime.MinValue.Day, DateTime.MinValue.Month, DateTime.MinValue.Year);
Console.WriteLine(dt4s);
DateTime dt4 = DateTime.ParseExact(dt4s, "dd-MM-yyyy", null);
Console.WriteLine(dt4);
Console.ReadKey();
}
}
}
Arne