예제 #1
0
        ///<include file='doc\XmlConvert.uex' path='docs/doc[@for="XmlConvert.ToDateTime3"]/*' />
        /// <devdoc>
        ///    <para>[To be supplied.]</para>
        /// </devdoc>
        public static DateTime ToDateTime(string s, XmlDateTimeSerializationMode dateTimeOption)
        {
            XsdDateTime xsdDateTime = new XsdDateTime(s, XsdDateTimeFlags.AllXsd);
            DateTime    dt          = (DateTime)xsdDateTime;

            switch (dateTimeOption)
            {
            case XmlDateTimeSerializationMode.Local:
                dt = SwitchToLocalTime(dt);
                break;

            case XmlDateTimeSerializationMode.Utc:
                dt = SwitchToUtcTime(dt);
                break;

            case XmlDateTimeSerializationMode.Unspecified:
                dt = new DateTime(dt.Ticks, DateTimeKind.Unspecified);
                break;

            case XmlDateTimeSerializationMode.RoundtripKind:
                break;

            default:
                throw new ArgumentException(SR.Format(SR.Sch_InvalidDateTimeOption, dateTimeOption, "dateTimeOption"));
            }
            return(dt);
        }
예제 #2
0
        ///<include file='doc\XmlConvert.uex' path='docs/doc[@for="XmlConvert.ToString14"]/*' />
        /// <devdoc>
        ///    <para>[To be supplied.]</para>
        /// </devdoc>
        public static string ToString(DateTime value, XmlDateTimeSerializationMode dateTimeOption)
        {
            switch (dateTimeOption)
            {
            case XmlDateTimeSerializationMode.Local:
                value = SwitchToLocalTime(value);
                break;

            case XmlDateTimeSerializationMode.Utc:
                value = SwitchToUtcTime(value);
                break;

            case XmlDateTimeSerializationMode.Unspecified:
                value = new DateTime(value.Ticks, DateTimeKind.Unspecified);
                break;

            case XmlDateTimeSerializationMode.RoundtripKind:
                break;

            default:
                throw new ArgumentException(SR.Format(SR.Sch_InvalidDateTimeOption, dateTimeOption, "dateTimeOption"));
            }
            XsdDateTime xsdDateTime = new XsdDateTime(value, XsdDateTimeFlags.DateTime);

            return(xsdDateTime.ToString());
        }
예제 #3
0
        public static string ToString(DateTime value, XmlDateTimeSerializationMode dateTimeOption)
        {
            // Unlike usual DateTime formatting, it preserves
            // MaxValue/MinValue as is.
            switch (dateTimeOption)
            {
            case XmlDateTimeSerializationMode.Local:
                return((value == DateTime.MinValue ? DateTime.MinValue : value == DateTime.MaxValue ? value : value.ToLocalTime()).ToString(
                           "yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz",
                           CultureInfo.InvariantCulture));

            case XmlDateTimeSerializationMode.RoundtripKind:
                return(value.ToString(
                           "yyyy-MM-ddTHH:mm:ss.FFFFFFFK",
                           CultureInfo.InvariantCulture));

            default:
                return(value.ToString(
                           "yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz",
                           CultureInfo.InvariantCulture));

            case XmlDateTimeSerializationMode.Utc:
                return((value == DateTime.MinValue ? DateTime.MinValue : value == DateTime.MaxValue ? value : value.ToUniversalTime()).ToString(
                           "yyyy-MM-ddTHH:mm:ss.FFFFFFFZ",
                           CultureInfo.InvariantCulture));

            case XmlDateTimeSerializationMode.Unspecified:
                return(value.ToString(
                           "yyyy-MM-ddTHH:mm:ss.FFFFFFF",
                           CultureInfo.InvariantCulture));
            }
        }
예제 #4
0
        internal static string ToString(DateTime value, XmlDateTimeSerializationMode dateTimeOption)
        {
            switch (dateTimeOption)
            {
            case XmlDateTimeSerializationMode.Local:
                value = SwitchToLocalTime(value);
                break;

            case XmlDateTimeSerializationMode.Utc:
                value = SwitchToUtcTime(value);
                break;

            case XmlDateTimeSerializationMode.Unspecified:
                value = new DateTime(value.Ticks, DateTimeKind.Unspecified);
                break;

            case XmlDateTimeSerializationMode.RoundtripKind:
                break;

            default:
                throw new ArgumentException(
                          //TODO:
                          string.Format(
                              "The '{0}' value for the 'dateTimeOption' parameter is not an allowed value for the 'XmlDateTimeSerializationMode' enumeration.",
                              "dateTimeOption"));
            }
            XsdDateTime xsdDateTime = new XsdDateTime(value, XsdDateTimeFlags.DateTime);

            return(xsdDateTime.ToString());
        }
예제 #5
0
        public static DateTime ToDateTime(string value, XmlDateTimeSerializationMode mode)
        {
            string   modestr = null;
            DateTime dt;

            switch (mode)
            {
            case XmlDateTimeSerializationMode.Local:
                dt = ToDateTime(value, localDateTimeFormats);
                return(dt == DateTime.MinValue || dt == DateTime.MaxValue ? dt : dt.ToLocalTime());

            case XmlDateTimeSerializationMode.RoundtripKind:
                return(ToDateTime(value, roundtripDateTimeFormats));

            case XmlDateTimeSerializationMode.Utc:
                dt = ToDateTime(value, utcDateTimeFormats);
                return(dt == DateTime.MinValue || dt == DateTime.MaxValue ? dt : dt.ToUniversalTime());

            case XmlDateTimeSerializationMode.Unspecified:
#if TARGET_JVM
                return(ToDateTime(value, unspecifiedDateTimeFormats));
#endif
            default:
                return(ToDateTime(value, defaultDateTimeFormats));
            }
        }
예제 #6
0
        internal static DateTime ToDateTime(string s, XmlDateTimeSerializationMode dateTimeOption)
        {
            XsdDateTime xsdDateTime = new XsdDateTime(s, XsdDateTimeFlags.AllXsd);
            DateTime    dt          = xsdDateTime;

            switch (dateTimeOption)
            {
            case XmlDateTimeSerializationMode.Local:
                dt = SwitchToLocalTime(dt);
                break;

            case XmlDateTimeSerializationMode.Utc:
                dt = SwitchToUtcTime(dt);
                break;

            case XmlDateTimeSerializationMode.Unspecified:
                dt = new DateTime(dt.Ticks, DateTimeKind.Unspecified);
                break;

            case XmlDateTimeSerializationMode.RoundtripKind:
                break;

            default:
                throw new ArgumentException(
                          //TODO:
                          string.Format(
                              "The '{0}' value for the 'dateTimeOption' parameter is not an allowed value for the 'XmlDateTimeSerializationMode' enumeration.",
                              "dateTimeOption"));
            }
            return(dt);
        }
        public void XmlDateTimeSerializationModeSeveralFormats()
        {
            XmlDateTimeSerializationMode m = XmlDateTimeSerializationMode.RoundtripKind;

            XmlConvert.ToDateTime("0001", m);
            XmlConvert.ToDateTime("0001Z", m);
            XmlConvert.ToDateTime("0001+09:00", m);
            XmlConvert.ToDateTime("0001-02", m);
            XmlConvert.ToDateTime("0001-02Z", m);
            XmlConvert.ToDateTime("0001-02+09:00", m);
            XmlConvert.ToDateTime("0001-02-03", m);
            XmlConvert.ToDateTime("0001-02-03Z", m);
            XmlConvert.ToDateTime("0001-02-03+09:00", m);
            XmlConvert.ToDateTime("--02-03", m);
            XmlConvert.ToDateTime("--02-03Z", m);
            XmlConvert.ToDateTime("--02-03+09:00", m);
            XmlConvert.ToDateTime("---03", m);
            XmlConvert.ToDateTime("---03Z", m);
            XmlConvert.ToDateTime("---03+09:00", m);
            XmlConvert.ToDateTime("10:20:30", m);
            XmlConvert.ToDateTime("10:20:30Z", m);
            XmlConvert.ToDateTime("10:20:30+09:00", m);
            XmlConvert.ToDateTime("0001-02-03T10:20:30", m);
            XmlConvert.ToDateTime("0001-02-03T10:20:30Z", m);
            XmlConvert.ToDateTime("0001-02-03T10:20:30+09:00", m);
            XmlConvert.ToDateTime("0001-02-03T10:20:30.00", m);
            XmlConvert.ToDateTime("0001-02-03T10:20:30.00Z", m);
            XmlConvert.ToDateTime("0001-02-03T10:20:30.00+09:00", m);
            XmlConvert.ToDateTime("0001-02-03T10:20:30.0000", m);
            XmlConvert.ToDateTime("0001-02-03T10:20:30.0000Z", m);
            XmlConvert.ToDateTime("0001-02-03T10:20:30.0000+09:00", m);

            try
            {
                XmlConvert.ToDateTime("0001-02-03T", m);
                Assert.Fail("#1");
            }
            catch (FormatException)
            {
            }
            try
            {
                XmlConvert.ToDateTime("0001-02-03T10:20", m);
                Assert.Fail("#2");
            }
            catch (FormatException)
            {
            }
            try
            {
                XmlConvert.ToDateTime("0001-02-03T10:20:30.", m);
                Assert.Fail("#3");
            }
            catch (FormatException)
            {
            }
        }
예제 #8
0
 public static DateTime ToDateTime(string textValue, XmlDateTimeSerializationMode mode)
 {
     try
     {
         return(XmlConvert.ToDateTime(textValue, mode));
     }
     catch (Exception)
     {
         return(DateTime.Parse(textValue));
     }
 }
예제 #9
0
        public static DateTime ToDateTime(string s, XmlDateTimeSerializationMode dateTimeOption)
        {
            switch (dateTimeOption)
            {
            case XmlDateTimeSerializationMode.Local:
                return(ToDateTime(s, datetimeFormats, _defaultStyle | DateTimeStyles.AssumeLocal).ToLocalTime());

            case XmlDateTimeSerializationMode.RoundtripKind:
                return(ToDateTime(s, datetimeFormats, _defaultStyle | DateTimeStyles.RoundtripKind));

            case XmlDateTimeSerializationMode.Utc:
                return(ToDateTime(s, datetimeFormats, _defaultStyle | DateTimeStyles.AssumeUniversal).ToUniversalTime());

            default:
                return(new DateTime(ToDateTime(s, datetimeFormats, _defaultStyle | DateTimeStyles.RoundtripKind).Ticks, DateTimeKind.Unspecified));
            }
        }
예제 #10
0
파일: XmlConvert.cs 프로젝트: raj581/Marvin
        public static DateTime ToDateTime(string value, XmlDateTimeSerializationMode mode)
        {
            DateTime dt;

            switch (mode)
            {
            case XmlDateTimeSerializationMode.Local:
                dt = ToDateTime(value, localDateTimeFormats);
                return(dt == DateTime.MinValue || dt == DateTime.MaxValue ? dt : dt.ToLocalTime());

            case XmlDateTimeSerializationMode.RoundtripKind:
                return(ToDateTime(value, roundtripDateTimeFormats, _defaultStyle | DateTimeStyles.RoundtripKind));

            case XmlDateTimeSerializationMode.Utc:
                dt = ToDateTime(value, utcDateTimeFormats);
                return(dt == DateTime.MinValue || dt == DateTime.MaxValue ? dt : dt.ToUniversalTime());

            case XmlDateTimeSerializationMode.Unspecified:
                return(ToDateTime(value, unspecifiedDateTimeFormats));

            default:
                return(ToDateTime(value, defaultDateTimeFormats));
            }
        }
예제 #11
0
        public static DateTime ToDateTime(string s, XmlDateTimeSerializationMode dateTimeOption)
        {
            DateTime dt;

            switch (dateTimeOption)
            {
            case XmlDateTimeSerializationMode.Local:
                dt = ToDateTime(s, localDateTimeFormats);
                return(new DateTime(dt.Ticks, DateTimeKind.Local));

            case XmlDateTimeSerializationMode.RoundtripKind:
                return(ToDateTime(s, roundtripDateTimeFormats, _defaultStyle | DateTimeStyles.RoundtripKind));

            case XmlDateTimeSerializationMode.Utc:
                dt = ToDateTime(s, utcDateTimeFormats);
                return(new DateTime(dt.Ticks, DateTimeKind.Utc));

            case XmlDateTimeSerializationMode.Unspecified:
                return(ToDateTime(s, unspecifiedDateTimeFormats));

            default:
                return(ToDateTime(s, defaultDateTimeFormats));
            }
        }
예제 #12
0
        ///<include file='doc\XmlConvert.uex' path='docs/doc[@for="XmlConvert.ToDateTime3"]/*' />
        /// <devdoc>
        ///    <para>[To be supplied.]</para>
        /// </devdoc>
        public static DateTime ToDateTime(string s, XmlDateTimeSerializationMode dateTimeOption)
        {
            XsdDateTime xsdDateTime = new XsdDateTime(s, XsdDateTimeFlags.AllXsd);
            DateTime dt = (DateTime)xsdDateTime;

            switch (dateTimeOption)
            {
                case XmlDateTimeSerializationMode.Local:
                    dt = SwitchToLocalTime(dt);
                    break;

                case XmlDateTimeSerializationMode.Utc:
                    dt = SwitchToUtcTime(dt);
                    break;

                case XmlDateTimeSerializationMode.Unspecified:
                    dt = new DateTime(dt.Ticks, DateTimeKind.Unspecified);
                    break;

                case XmlDateTimeSerializationMode.RoundtripKind:
                    break;

                default:
                    throw new ArgumentException(SR.Format(SR.Sch_InvalidDateTimeOption, dateTimeOption, "dateTimeOption"));
            }
            return dt;
        }
예제 #13
0
파일: XmlConvert.cs 프로젝트: GirlD/mono
		public static string ToString (DateTime value, XmlDateTimeSerializationMode dateTimeOption)
		{
			// Unlike usual DateTime formatting, it preserves
			// MaxValue/MinValue as is.
			switch (dateTimeOption) {
			case XmlDateTimeSerializationMode.Local:
				return (value == DateTime.MinValue ? DateTime.MinValue : value == DateTime.MaxValue ? value : value.ToLocalTime ()).ToString (
					"yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz",
					CultureInfo.InvariantCulture);
			case XmlDateTimeSerializationMode.RoundtripKind:
				return value.ToString (
					"yyyy-MM-ddTHH:mm:ss.FFFFFFFK",
					CultureInfo.InvariantCulture);
			default:
				return value.ToString (
					"yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz",
					CultureInfo.InvariantCulture);
			case XmlDateTimeSerializationMode.Utc:
				return (value == DateTime.MinValue ? DateTime.MinValue : value == DateTime.MaxValue ? value : value.ToUniversalTime ()).ToString (
					"yyyy-MM-ddTHH:mm:ss.FFFFFFFZ",
					CultureInfo.InvariantCulture);
			case XmlDateTimeSerializationMode.Unspecified:
				return value.ToString (
					"yyyy-MM-ddTHH:mm:ss.FFFFFFF",
					CultureInfo.InvariantCulture);
			}
		}
예제 #14
0
파일: XmlConvert.cs 프로젝트: GirlD/mono
		public static DateTime ToDateTime (string s, XmlDateTimeSerializationMode dateTimeOption)
		{
			DateTime dt;
			switch (dateTimeOption) {
			case XmlDateTimeSerializationMode.Local:
				dt = ToDateTime (s, localDateTimeFormats);
				return new DateTime (dt.Ticks, DateTimeKind.Local);
			case XmlDateTimeSerializationMode.RoundtripKind:
				return ToDateTime (s, roundtripDateTimeFormats, _defaultStyle | DateTimeStyles.RoundtripKind);
			case XmlDateTimeSerializationMode.Utc:
				dt = ToDateTime (s, utcDateTimeFormats);
				return new DateTime (dt.Ticks, DateTimeKind.Utc);
			case XmlDateTimeSerializationMode.Unspecified:
				return ToDateTime (s, unspecifiedDateTimeFormats);
			default:
				return ToDateTime (s, defaultDateTimeFormats);
			}
		}
예제 #15
0
        internal static DateTime ReadAppInfoAsDateTime(this XmlSchemaAnnotated annotated, string nodeName, string attributeName, XmlDateTimeSerializationMode mode, DateTime defaultValue)
        {
            var text = ReadAppInfoAsString(annotated, nodeName, attributeName);

            if (text == null)
            {
                return(defaultValue);
            }
            return(CremaXmlConvert.ToDateTime(text, mode));
        }
 public static string ToString(DateTime value, XmlDateTimeSerializationMode dateTimeOption);
        public static DateTime ToDateTime(string s, XmlDateTimeSerializationMode dateTimeOption)
        {
            XsdDateTime time = new XsdDateTime(s, XsdDateTimeFlags.AllXsd);
            DateTime time2 = (DateTime) time;
            switch (dateTimeOption)
            {
                case XmlDateTimeSerializationMode.Local:
                    return SwitchToLocalTime(time2);

                case XmlDateTimeSerializationMode.Utc:
                    return SwitchToUtcTime(time2);

                case XmlDateTimeSerializationMode.Unspecified:
                    return new DateTime(time2.Ticks, DateTimeKind.Unspecified);

                case XmlDateTimeSerializationMode.RoundtripKind:
                    return time2;
            }
            throw new ArgumentException(Res.GetString("Sch_InvalidDateTimeOption", new object[] { dateTimeOption, "dateTimeOption" }));
        }
예제 #18
0
 public static XmlElement AddText(this XmlElement element, DateTime value, XmlDateTimeSerializationMode dateTimeOption)
 {
     return(_AddText(element, XmlConvert.ToString(value, dateTimeOption)));
 }
 /// <summary>
 /// Converts the specified <paramref name="value"/> to a <see cref="System.String"/> using the <paramref name="serializationMode"/> specified.
 /// </summary>
 /// <param name="value">The <see cref="DateTime"/> value to convert.</param>
 /// <param name="serializationMode">One of the <see cref="XmlDateTimeSerializationMode"/> values that specify how to treat the <see cref="DateTime"/> <paramref name="value"/>.</param>
 /// <returns>A <see cref="System.String" /> equivalent of the <see cref="DateTime"/> <paramref name="value"/>.</returns>
 public static string ToString(this DateTime value, XmlDateTimeSerializationMode serializationMode)
 {
     return(XmlConvert.ToString(value, serializationMode));
 }
예제 #20
0
파일: XmlConvert.cs 프로젝트: dotnet/corefx
        ///<include file='doc\XmlConvert.uex' path='docs/doc[@for="XmlConvert.ToString14"]/*' />
        /// <devdoc>
        ///    <para>[To be supplied.]</para>
        /// </devdoc>
        public static string ToString(DateTime value, XmlDateTimeSerializationMode dateTimeOption)
        {
            switch (dateTimeOption)
            {
                case XmlDateTimeSerializationMode.Local:
                    value = SwitchToLocalTime(value);
                    break;

                case XmlDateTimeSerializationMode.Utc:
                    value = SwitchToUtcTime(value);
                    break;

                case XmlDateTimeSerializationMode.Unspecified:
                    value = new DateTime(value.Ticks, DateTimeKind.Unspecified);
                    break;

                case XmlDateTimeSerializationMode.RoundtripKind:
                    break;

                default:
                    throw new ArgumentException(SR.Format(SR.Sch_InvalidDateTimeOption, dateTimeOption, nameof(dateTimeOption)));
            }
            XsdDateTime xsdDateTime = new XsdDateTime(value, XsdDateTimeFlags.DateTime);
            return xsdDateTime.ToString();
        }
예제 #21
0
 public static DateTime ToDateTime(string s, XmlDateTimeSerializationMode dateTimeOption);
예제 #22
0
 public static string ToString(DateTime value, XmlDateTimeSerializationMode dateTimeOption);
예제 #23
0
파일: XmlConvert.cs 프로젝트: nobled/mono
		public static DateTime ToDateTime (string s, XmlDateTimeSerializationMode dateTimeOption)
		{
			switch (dateTimeOption) {
			case XmlDateTimeSerializationMode.Local:
                return ToDateTime(s, datetimeFormats, _defaultStyle | DateTimeStyles.AssumeLocal).ToLocalTime();
			case XmlDateTimeSerializationMode.RoundtripKind:
                return ToDateTime(s, datetimeFormats, _defaultStyle | DateTimeStyles.RoundtripKind);
			case XmlDateTimeSerializationMode.Utc:
                return ToDateTime(s, datetimeFormats, _defaultStyle | DateTimeStyles.AssumeUniversal).ToUniversalTime();
			default:
				return new DateTime (ToDateTime(s, datetimeFormats, _defaultStyle | DateTimeStyles.RoundtripKind).Ticks, DateTimeKind.Unspecified);
			}
		}
예제 #24
0
        public static bool TryGetAttributeAsDateTime(this XmlReader reader, string name, XmlDateTimeSerializationMode mode, out DateTime value)
        {
            var text = reader.GetAttribute(name);

            if (string.IsNullOrEmpty(text) == true)
            {
                value = new DateTime();
                return(false);
            }
            value = CremaXmlConvert.ToDateTime(text, mode);
            return(true);
        }
예제 #25
0
        public static DateTime GetAttributeAsDateTime(this XmlReader reader, string name, XmlDateTimeSerializationMode mode)
        {
            var text = reader.GetAttribute(name);

            if (string.IsNullOrEmpty(text) == true)
            {
                return(DateTime.MinValue);
            }
            return(CremaXmlConvert.ToDateTime(text, mode));
        }
 public static string ToXmlDateTime(this DateTime datetime, XmlDateTimeSerializationMode mode = XmlDateTimeSerializationMode.Utc)
 {
     return(XmlConvert.ToString(datetime, mode));
 }
 public DateTimeConverter(XmlDateTimeSerializationMode mode) => _mode = mode;
예제 #28
0
		public static DateTime ToDateTime (string value, XmlDateTimeSerializationMode mode)
		{
			DateTime dt;
			switch (mode) {
			case XmlDateTimeSerializationMode.Local:
				dt = ToDateTime (value, localDateTimeFormats);
				return dt == DateTime.MinValue || dt == DateTime.MaxValue ? dt : dt.ToLocalTime ();
			case XmlDateTimeSerializationMode.RoundtripKind:
				return ToDateTime (value, roundtripDateTimeFormats, _defaultStyle | DateTimeStyles.RoundtripKind);
			case XmlDateTimeSerializationMode.Utc:
				dt = ToDateTime (value, utcDateTimeFormats);
				return dt == DateTime.MinValue || dt == DateTime.MaxValue ? dt : dt.ToUniversalTime ();
			case XmlDateTimeSerializationMode.Unspecified:
				return ToDateTime (value, unspecifiedDateTimeFormats);
			default:
				return ToDateTime (value, defaultDateTimeFormats);
			}
		}
예제 #29
0
 public static XmlElement AddAttribute(this XmlElement element, string name, DateTime value, XmlDateTimeSerializationMode dateTimeOption)
 {
     return(_AddAttribute(element, name, XmlConvert.ToString(value, dateTimeOption)));
 }
예제 #30
0
 internal static DateTime ReadAppInfoAsDateTime(this XmlSchemaAnnotated annotated, string nodeName, string attributeName, XmlDateTimeSerializationMode mode)
 {
     return(ReadAppInfoAsDateTime(annotated, nodeName, attributeName, mode, DateTime.MinValue));
 }
        public static string ToString(DateTime value, XmlDateTimeSerializationMode dateTimeOption)
        {
            switch (dateTimeOption)
            {
                case XmlDateTimeSerializationMode.Local:
                    value = SwitchToLocalTime(value);
                    break;

                case XmlDateTimeSerializationMode.Utc:
                    value = SwitchToUtcTime(value);
                    break;

                case XmlDateTimeSerializationMode.Unspecified:
                    value = new DateTime(value.Ticks, DateTimeKind.Unspecified);
                    break;

                case XmlDateTimeSerializationMode.RoundtripKind:
                    break;

                default:
                    throw new ArgumentException(Res.GetString("Sch_InvalidDateTimeOption", new object[] { dateTimeOption, "dateTimeOption" }));
            }
            XsdDateTime time = new XsdDateTime(value, XsdDateTimeFlags.DateTime);
            return time.ToString();
        }
 public static DateTime ToDateTime(string s, XmlDateTimeSerializationMode dateTimeOption);