using System.Globalization;
using System.Text.RegularExpressions;
public class MillisecondDisplay
public static void Main()
string dateString = "7/16/2008 8:32:45.123 AM";
DateTime dateValue = DateTime.Parse(dateString);
DateTimeOffset dateOffsetValue = DateTimeOffset.Parse(dateString);
Console.WriteLine("Millisecond component only: {0}",
dateValue.ToString("f"));
Console.WriteLine("Millisecond component only: {0}",
dateOffsetValue.ToString("fff"));
Console.WriteLine("Date and Time with Milliseconds: {0}",
dateValue.ToString("MM/dd/yyyy hh:mm:ss.fff tt"));
Console.WriteLine("Date and Time with Milliseconds: {0}",
dateOffsetValue.ToString("MM/dd/yyyy hh:mm:ss.f tt"));
string fullPattern = DateTimeFormatInfo.CurrentInfo.FullDateTimePattern;
fullPattern = Regex.Replace(fullPattern, "(:ss|:s)", "$1.fff");
Console.WriteLine("Modified full date time pattern: {0}",
dateValue.ToString(fullPattern));
Console.WriteLine("Modified full date time pattern: {0}",
dateOffsetValue.ToString(fullPattern));
Console.WriteLine("Unable to convert {0} to a date.", dateString);