Imported Upstream version 4.0.1.28

Former-commit-id: d8405b75d12c6845dab8fe08c1576f57a148d621
This commit is contained in:
Xamarin Public Jenkins
2015-05-14 10:55:10 -04:00
parent 7272927785
commit daac4dedd2
155 changed files with 2071 additions and 1163 deletions

View File

@@ -290,7 +290,16 @@ namespace System.Xml {
//return DateTime.Parse(s, d);
DateTimeStyles style = DateTimeStyles.AllowLeadingWhite |
DateTimeStyles.AllowTrailingWhite;
return DateTime.ParseExact (s, format, DateTimeFormatInfo.InvariantInfo, style);
try {
return DateTime.ParseExact (s, format, DateTimeFormatInfo.InvariantInfo, style);
} catch (Exception e) {
try {
var xsdDateTime = new XsdDateTime2 (s, XsdDateTimeFlags.AllXsd);
return (DateTime) xsdDateTime;
} catch {
throw e;
}
}
}
public static DateTime ToDateTime(string s, string[] formats)
@@ -304,6 +313,13 @@ namespace System.Xml {
return DateTime.ParseExact (s, formats, DateTimeFormatInfo.InvariantInfo, style);
} catch (ArgumentOutOfRangeException) {
return DateTime.MinValue;
} catch (Exception e) {
try {
var xsdDateTime = new XsdDateTime2 (s, XsdDateTimeFlags.AllXsd);
return (DateTime) xsdDateTime;
} catch {
throw e;
}
}
}
@@ -781,15 +797,35 @@ namespace System.Xml {
public static DateTimeOffset ToDateTimeOffset (string s, string format)
{
return DateTimeOffset.ParseExact (s, format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
try {
return DateTimeOffset.ParseExact (s, format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
} catch (Exception e) {
try {
var xsdDateTime = new XsdDateTime2 (s, XsdDateTimeFlags.AllXsd);
return (DateTimeOffset) xsdDateTime;
} catch {
throw e;
}
}
}
public static DateTimeOffset ToDateTimeOffset (string s, string [] formats)
{
DateTimeStyles style = DateTimeStyles.AllowLeadingWhite |
try {
DateTimeStyles style = DateTimeStyles.AllowLeadingWhite |
DateTimeStyles.AllowTrailingWhite |
DateTimeStyles.AssumeUniversal;
return DateTimeOffset.ParseExact (s, formats, CultureInfo.InvariantCulture, style);
return DateTimeOffset.ParseExact (s, formats, CultureInfo.InvariantCulture, style);
} catch (Exception e) {
try {
var xsdDateTime = new XsdDateTime2 (s, XsdDateTimeFlags.AllXsd);
return (DateTimeOffset) xsdDateTime;
} catch {
throw e;
}
}
}
public static string ToString (DateTimeOffset value)