public void testSIF2xDateTimeParsing()
        {
            SifFormatter formatter = new Sif2xFormatter();
            String       testValue = formatter.ToDateTimeString(null);

            Assert.IsNull(testValue, "Date value should be null");

            DateTime assertedDate = new DateTime(1999, 9, 1, 22, 2, 4);
            TimeSpan utcOffset    = TimeZone.CurrentTimeZone.GetUtcOffset(assertedDate);

            Console.Write("UTC Offset: ");
            Console.WriteLine(utcOffset);
            Console.WriteLine();

            Nullable <DateTime> assertedDateTime = new Nullable <DateTime>(assertedDate);
            String sifString = formatter.ToDateTimeString(assertedDateTime);

            AssertDateTimeParsing(assertedDateTime, formatter, sifString, "Re-Parse of original");


            String test1 = "1999-09-01T22:02:04";

            AssertDateTimeParsing(assertedDateTime, formatter, test1, "Date Time");

            DateTime UTcTime = assertedDate.ToUniversalTime();
            String   test2   = UTcTime.ToString("s") + "Z";

            AssertDateTimeParsing(assertedDateTime, formatter, test2, "UTC Time (Z)");

//            test2 = UTcTime.ToString("s") + "+0:00";
//            AssertDateTimeParsing(assertedDateTime, formatter, test2, "UTC Time (+00:00)");

            // Test the time, using Eastern time
            DateTime easternTime = UTcTime.AddHours(-5);
            String   test3       = easternTime.ToString("s") + "-05:00";

            AssertDateTimeParsing(assertedDateTime, formatter, test3, "Eastern Time");


            // Test the time, using european time
            DateTime europeanTime = UTcTime.AddHours(3);
            String   test4        = europeanTime.ToString("s") + "+03:00";

            AssertDateTimeParsing(assertedDateTime, formatter, test4, "European Time");
        }
        public void testSIF2xTimeParsing()
        {
            SifFormatter formatter = new Sif2xFormatter();
            String       testValue = formatter.ToTimeString(null);

            Assert.IsNull(testValue, "Date value should be null");


            DateTime            now              = DateTime.Now;
            DateTime            assertedDate     = new DateTime(now.Year, now.Month, now.Day, 21, 0, 59);
            Nullable <DateTime> assertedDateTime = new Nullable <DateTime>(assertedDate);


            String sifString = formatter.ToDateTimeString(assertedDateTime);

            AssertTimeParsing(assertedDateTime, formatter, sifString, "Re-Parse of original");


            String test1 = "21:00:59";

            AssertTimeParsing(assertedDateTime, formatter, test1, "Date Time");

            DateTime UTcTime = assertedDate.ToUniversalTime();
            String   test2   = UTcTime.ToString("HH:mm:ss") + "Z";

            AssertTimeParsing(assertedDateTime, formatter, test2, "UTC Time (Z)");

//            test2 = UTcTime.ToString("HH:mm:ss") + "+0:00";
//            AssertTimeParsing(assertedDateTime, formatter, test2, "UTC Time (+00:00)");

            // Test the time, using Eastern time
            DateTime easternTime = UTcTime.AddHours(-5);
            String   test3       = easternTime.ToString("HH:mm:ss") + "-05:00";

            AssertTimeParsing(assertedDateTime, formatter, test3, "Eastern Time");


            // Test the time, using european time
            DateTime europeanTime = UTcTime.AddHours(3);
            String   test4        = europeanTime.ToString("HH:mm:s.s") + "+03:00";

            AssertTimeParsing(assertedDateTime, formatter, test4, "European Time");


            test4 = "2008-04-21T14:16:00.3651098Z";
            DateTime t = formatter.ToDateTime(test4).Value;

            Console.WriteLine(t);
        }