Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Figueiredo Jr. <fxjr@mono-cvs.ximian.com>2004-03-23 04:31:25 +0300
committerFrancisco Figueiredo Jr. <fxjr@mono-cvs.ximian.com>2004-03-23 04:31:25 +0300
commit92f68ebf28b73e3d7d97df3853cf06ecd1f58518 (patch)
tree0a8564be94f054f1a6f888a21495a46ff9181d7a /mcs/class/Npgsql/NpgsqlTypes
parent8944bfdf8e5042ee9b56d5fd73af1447cc08a2fc (diff)
2004-03-22 Francisco Figueiredo Jr. <fxjrlists@yahoo.com.br>
* NpgsqlTypes/NpgsqlTypesHelper: Applied patch to correctly parse datetimes values with timezone information. Thanks Glen Parker <glenebob@nwlink.com> for the patch. svn path=/trunk/mcs/; revision=24444
Diffstat (limited to 'mcs/class/Npgsql/NpgsqlTypes')
-rwxr-xr-xmcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs47
1 files changed, 43 insertions, 4 deletions
diff --git a/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs b/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs
index b98f38aedbe..3809ff6014d 100755
--- a/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs
+++ b/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs
@@ -71,7 +71,46 @@ namespace NpgsqlTypes
// From include/utils/datetime.h. Thanks to Carlos Guzman Alvarez
private static readonly DateTime postgresEpoch = new DateTime(2000, 1, 1);
-
+ private static readonly string[] DateFormats = new String[]
+ {
+ "yyyy-MM-dd",
+ };
+
+ private static readonly string[] TimeFormats = new String[]
+ {
+ "HH:mm:ss.ffffff",
+ "HH:mm:ss.fffff",
+ "HH:mm:ss.ffff",
+ "HH:mm:ss.fff",
+ "HH:mm:ss.ff",
+ "HH:mm:ss.f",
+ "HH:mm:ss",
+ "HH:mm:ss.ffffffzz",
+ "HH:mm:ss.fffffzz",
+ "HH:mm:ss.ffffzz",
+ "HH:mm:ss.fffzz",
+ "HH:mm:ss.ffzz",
+ "HH:mm:ss.fzz",
+ "HH:mm:sszz"
+ };
+
+ private static readonly string[] DateTimeFormats = new String[]
+ {
+ "yyyy-MM-dd HH:mm:ss.ffffff",
+ "yyyy-MM-dd HH:mm:ss.fffff",
+ "yyyy-MM-dd HH:mm:ss.ffff",
+ "yyyy-MM-dd HH:mm:ss.fff",
+ "yyyy-MM-dd HH:mm:ss.ff",
+ "yyyy-MM-dd HH:mm:ss.f",
+ "yyyy-MM-dd HH:mm:ss",
+ "yyyy-MM-dd HH:mm:ss.ffffffzz",
+ "yyyy-MM-dd HH:mm:ss.fffffzz",
+ "yyyy-MM-dd HH:mm:ss.ffffzz",
+ "yyyy-MM-dd HH:mm:ss.fffzz",
+ "yyyy-MM-dd HH:mm:ss.ffzz",
+ "yyyy-MM-dd HH:mm:ss.fzz",
+ "yyyy-MM-dd HH:mm:sszz"
+ };
public static String GetBackendTypeNameFromDbType(DbType dbType)
{
@@ -248,20 +287,20 @@ namespace NpgsqlTypes
// Get the date time parsed in all expected formats for timestamp.
return DateTime.ParseExact(data,
- new String[] {"yyyy-MM-dd HH:mm:ss.ffffff", "yyyy-MM-dd HH:mm:ss.fffff", "yyyy-MM-dd HH:mm:ss.ffff", "yyyy-MM-dd HH:mm:ss.fff", "yyyy-MM-dd HH:mm:ss.ff", "yyyy-MM-dd HH:mm:ss.f", "yyyy-MM-dd HH:mm:ss"},
+ DateTimeFormats,
DateTimeFormatInfo.InvariantInfo,
DateTimeStyles.NoCurrentDateDefault | DateTimeStyles.AllowWhiteSpaces);
case DbType.Date:
return DateTime.ParseExact(data,
- "yyyy-MM-dd",
+ DateFormats,
DateTimeFormatInfo.InvariantInfo,
DateTimeStyles.AllowWhiteSpaces);
case DbType.Time:
return DateTime.ParseExact(data,
- new String[] {"HH:mm:ss.ffff", "HH:mm:ss.fff", "HH:mm:ss.ff", "HH:mm:ss.f", "HH:mm:ss"},
+ TimeFormats,
DateTimeFormatInfo.InvariantInfo,
DateTimeStyles.NoCurrentDateDefault | DateTimeStyles.AllowWhiteSpaces);