If works if you do the following... of course, you might want to have two distinct infos, one for input and another to output, if you are reading/writing lots of dates.
System.Globalization.DateTimeFormatInfo info =
new System.Globalization.DateTimeFormatInfo();
info.ShortDatePattern = "MM/dd/yyyy";
info.LongTimePattern = "hh:mm:ss tt";
string input = "9/10/2012 8:13:56 PM";
DateTime datetime = DateTime.Parse(input, info);
info.LongDatePattern = "dd/MM/yyyy";
string output = datetime.ToString("dd/MM/yyyy hh:mm:ss tt", info);
Alternatively, if you know the input and output cultures, you can get the formats by calling "someCulture.DateTimeFormat" of the CultureInfo instances.