diff --git a/openstack/db/v1/configurations/fixtures.go b/openstack/db/v1/configurations/fixtures.go
index 95784ad..ae65416 100644
--- a/openstack/db/v1/configurations/fixtures.go
+++ b/openstack/db/v1/configurations/fixtures.go
@@ -1,23 +1,31 @@
 package configurations
 
-import "fmt"
+import (
+	"fmt"
+	"time"
+)
 
-const singleConfigJSON = `
+var (
+	timestamp  = "2015-11-12T14:22:42Z"
+	timeVal, _ = time.Parse(time.RFC3339, timestamp)
+)
+
+var singleConfigJSON = `
 {
-  "created": "2014-07-31T18:56:09",
+  "created": "` + timestamp + `",
   "datastore_name": "mysql",
   "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb",
   "datastore_version_name": "5.6",
   "description": "example_description",
   "id": "005a8bb7-a8df-40ee-b0b7-fc144641abc2",
   "name": "example-configuration-name",
-  "updated": "2014-07-31T18:56:09"
+  "updated": "` + timestamp + `"
 }
 `
 
-const singleConfigWithValuesJSON = `
+var singleConfigWithValuesJSON = `
 {
-  "created": "2014-07-31T15:02:52",
+  "created": "` + timestamp + `",
   "datastore_name": "mysql",
   "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb",
   "datastore_version_name": "5.6",
@@ -25,7 +33,7 @@
   "id": "005a8bb7-a8df-40ee-b0b7-fc144641abc2",
   "instance_count": 0,
   "name": "example-configuration-name",
-  "updated": "2014-07-31T15:02:52",
+  "updated": "` + timestamp + `",
   "values": {
     "collation_server": "latin1_swedish_ci",
     "connect_timeout": 120
@@ -123,25 +131,25 @@
 `
 
 var ExampleConfig = Config{
-	Created:              "2014-07-31T18:56:09",
+	Created:              timeVal,
 	DatastoreName:        "mysql",
 	DatastoreVersionID:   "b00000b0-00b0-0b00-00b0-000b000000bb",
 	DatastoreVersionName: "5.6",
 	Description:          "example_description",
 	ID:                   "005a8bb7-a8df-40ee-b0b7-fc144641abc2",
 	Name:                 "example-configuration-name",
-	Updated:              "2014-07-31T18:56:09",
+	Updated:              timeVal,
 }
 
 var ExampleConfigWithValues = Config{
-	Created:              "2014-07-31T15:02:52",
+	Created:              timeVal,
 	DatastoreName:        "mysql",
 	DatastoreVersionID:   "b00000b0-00b0-0b00-00b0-000b000000bb",
 	DatastoreVersionName: "5.6",
 	Description:          "example description",
 	ID:                   "005a8bb7-a8df-40ee-b0b7-fc144641abc2",
 	Name:                 "example-configuration-name",
-	Updated:              "2014-07-31T15:02:52",
+	Updated:              timeVal,
 	Values: map[string]interface{}{
 		"collation_server": "latin1_swedish_ci",
 		"connect_timeout":  120,
diff --git a/openstack/db/v1/configurations/results.go b/openstack/db/v1/configurations/results.go
index 98ce25f..37a77ad 100644
--- a/openstack/db/v1/configurations/results.go
+++ b/openstack/db/v1/configurations/results.go
@@ -1,6 +1,8 @@
 package configurations
 
 import (
+	"time"
+
 	"github.com/mitchellh/mapstructure"
 	"github.com/rackspace/gophercloud"
 	"github.com/rackspace/gophercloud/pagination"
@@ -8,11 +10,11 @@
 
 // Config represents a configuration group API resource.
 type Config struct {
-	Created              string
-	Updated              string
-	DatastoreName        string `mapstructure:"datastore_name"`
-	DatastoreVersionID   string `mapstructure:"datastore_version_id"`
-	DatastoreVersionName string `mapstructure:"datastore_version_name"`
+	Created              time.Time `mapstructure:"-"`
+	Updated              time.Time `mapstructure:"-"`
+	DatastoreName        string    `mapstructure:"datastore_name"`
+	DatastoreVersionID   string    `mapstructure:"datastore_version_id"`
+	DatastoreVersionName string    `mapstructure:"datastore_version_name"`
 	Description          string
 	ID                   string
 	Name                 string
@@ -42,6 +44,33 @@
 	}
 
 	err := mapstructure.Decode(casted, &resp)
+
+	var vals []interface{}
+	switch (casted).(type) {
+	case interface{}:
+		vals = casted.(map[string]interface{})["configurations"].([]interface{})
+	}
+
+	for i, v := range vals {
+		val := v.(map[string]interface{})
+
+		if t, ok := val["created"].(string); ok && t != "" {
+			creationTime, err := time.Parse(time.RFC3339, t)
+			if err != nil {
+				return resp.Configs, err
+			}
+			resp.Configs[i].Created = creationTime
+		}
+
+		if t, ok := val["updated"].(string); ok && t != "" {
+			updatedTime, err := time.Parse(time.RFC3339, t)
+			if err != nil {
+				return resp.Configs, err
+			}
+			resp.Configs[i].Updated = updatedTime
+		}
+	}
+
 	return resp.Configs, err
 }
 
@@ -60,6 +89,24 @@
 	}
 
 	err := mapstructure.Decode(r.Body, &response)
+	val := r.Body.(map[string]interface{})["configuration"].(map[string]interface{})
+
+	if t, ok := val["created"].(string); ok && t != "" {
+		creationTime, err := time.Parse(time.RFC3339, t)
+		if err != nil {
+			return &response.Config, err
+		}
+		response.Config.Created = creationTime
+	}
+
+	if t, ok := val["updated"].(string); ok && t != "" {
+		updatedTime, err := time.Parse(time.RFC3339, t)
+		if err != nil {
+			return &response.Config, err
+		}
+		response.Config.Updated = updatedTime
+	}
+
 	return &response.Config, err
 }
 
diff --git a/openstack/db/v1/instances/fixtures.go b/openstack/db/v1/instances/fixtures.go
index 1388e23..af7b185 100644
--- a/openstack/db/v1/instances/fixtures.go
+++ b/openstack/db/v1/instances/fixtures.go
@@ -3,6 +3,7 @@
 import (
 	"fmt"
 	"testing"
+	"time"
 
 	"github.com/rackspace/gophercloud"
 	"github.com/rackspace/gophercloud/openstack/db/v1/datastores"
@@ -10,9 +11,14 @@
 	"github.com/rackspace/gophercloud/testhelper/fixture"
 )
 
-const instance = `
+var (
+	timestamp  = "2015-11-12T14:22:42Z"
+	timeVal, _ = time.Parse(time.RFC3339, timestamp)
+)
+
+var instance = `
 {
-  "created": "2014-02-13T21:47:13",
+  "created": "` + timestamp + `",
   "datastore": {
     "type": "mysql",
     "version": "5.6"
@@ -40,7 +46,7 @@
   "id": "{instanceID}",
   "name": "json_rack_instance",
   "status": "BUILD",
-  "updated": "2014-02-13T21:47:13",
+  "updated": "` + timestamp + `",
   "volume": {
     "size": 2
   }
@@ -103,8 +109,8 @@
 )
 
 var expectedInstance = Instance{
-	Created: "2014-02-13T21:47:13",
-	Updated: "2014-02-13T21:47:13",
+	Created: timeVal,
+	Updated: timeVal,
 	Flavor: flavors.Flavor{
 		ID: "1",
 		Links: []gophercloud.Link{
diff --git a/openstack/db/v1/instances/results.go b/openstack/db/v1/instances/results.go
index 61dc021..9a49510 100644
--- a/openstack/db/v1/instances/results.go
+++ b/openstack/db/v1/instances/results.go
@@ -1,6 +1,8 @@
 package instances
 
 import (
+	"time"
+
 	"github.com/mitchellh/mapstructure"
 	"github.com/rackspace/gophercloud"
 	"github.com/rackspace/gophercloud/openstack/db/v1/datastores"
@@ -20,10 +22,10 @@
 // Instance represents a remote MySQL instance.
 type Instance struct {
 	// Indicates the datetime that the instance was created
-	Created string //time.Time
+	Created time.Time `mapstructure:"-"`
 
 	// Indicates the most recent datetime that the instance was updated.
-	Updated string //time.Time
+	Updated time.Time `mapstructure:"-"`
 
 	// Indicates the hardware flavor the instance uses.
 	Flavor flavors.Flavor
@@ -85,6 +87,23 @@
 	}
 
 	err := mapstructure.Decode(r.Body, &response)
+	val := r.Body.(map[string]interface{})["instance"].(map[string]interface{})
+
+	if t, ok := val["created"].(string); ok && t != "" {
+		creationTime, err := time.Parse(time.RFC3339, t)
+		if err != nil {
+			return &response.Instance, err
+		}
+		response.Instance.Created = creationTime
+	}
+
+	if t, ok := val["updated"].(string); ok && t != "" {
+		updatedTime, err := time.Parse(time.RFC3339, t)
+		if err != nil {
+			return &response.Instance, err
+		}
+		response.Instance.Updated = updatedTime
+	}
 
 	return &response.Instance, err
 }
@@ -129,6 +148,32 @@
 
 	err := mapstructure.Decode(casted, &response)
 
+	var vals []interface{}
+	switch (casted).(type) {
+	case interface{}:
+		vals = casted.(map[string]interface{})["instances"].([]interface{})
+	}
+
+	for i, v := range vals {
+		val := v.(map[string]interface{})
+
+		if t, ok := val["created"].(string); ok && t != "" {
+			creationTime, err := time.Parse(time.RFC3339, t)
+			if err != nil {
+				return response.Instances, err
+			}
+			response.Instances[i].Created = creationTime
+		}
+
+		if t, ok := val["updated"].(string); ok && t != "" {
+			updatedTime, err := time.Parse(time.RFC3339, t)
+			if err != nil {
+				return response.Instances, err
+			}
+			response.Instances[i].Updated = updatedTime
+		}
+	}
+
 	return response.Instances, err
 }
 
diff --git a/rackspace/db/v1/backups/fixtures.go b/rackspace/db/v1/backups/fixtures.go
index c6244e2..45c2376 100644
--- a/rackspace/db/v1/backups/fixtures.go
+++ b/rackspace/db/v1/backups/fixtures.go
@@ -1,9 +1,16 @@
 package backups
 
+import "time"
+
+var (
+	timestamp  = "2015-11-12T14:22:42Z"
+	timeVal, _ = time.Parse(time.RFC3339, timestamp)
+)
+
 var getResp = `
 {
   "backup": {
-    "created": "2014-02-13T21:47:16",
+    "created": "` + timestamp + `",
     "description": "My Backup",
     "id": "61f12fef-edb1-4561-8122-e7c00ef26a82",
     "instance_id": "d4603f69-ec7e-4e9b-803f-600b9205576f",
@@ -17,7 +24,7 @@
 			"type": "MySQL",
 			"version_id": "20000000-0000-0000-0000-000000000002"
 		},
-    "updated": "2014-02-13T21:47:16"
+    "updated": "` + timestamp + `"
   }
 }
 `
@@ -39,7 +46,7 @@
   "backups": [
     {
       "status": "COMPLETED",
-      "updated": "2014-06-18T21:24:39",
+      "updated": "` + timestamp + `",
       "description": "Backup from Restored Instance",
       "datastore": {
         "version": "5.1",
@@ -49,7 +56,7 @@
       "id": "87972694-4be2-40f5-83f8-501656e0032a",
       "size": 0.141026,
       "name": "restored_backup",
-      "created": "2014-06-18T21:23:35",
+      "created": "` + timestamp + `",
       "instance_id": "29af2cd9-0674-48ab-b87a-b160f00208e6",
       "parent_id": null,
       "locationRef": "http://localhost/path/to/backup"
diff --git a/rackspace/db/v1/backups/requests_test.go b/rackspace/db/v1/backups/requests_test.go
index ac0e6bd..d706733 100644
--- a/rackspace/db/v1/backups/requests_test.go
+++ b/rackspace/db/v1/backups/requests_test.go
@@ -31,7 +31,7 @@
 	th.AssertNoErr(t, err)
 
 	expected := &Backup{
-		Created:     "2014-02-13T21:47:16",
+		Created:     timeVal,
 		Description: "My Backup",
 		ID:          "61f12fef-edb1-4561-8122-e7c00ef26a82",
 		InstanceID:  "d4603f69-ec7e-4e9b-803f-600b9205576f",
@@ -40,7 +40,7 @@
 		ParentID:    "",
 		Size:        100,
 		Status:      "NEW",
-		Updated:     "2014-02-13T21:47:16",
+		Updated:     timeVal,
 		Datastore: datastores.DatastorePartial{
 			Version:   "5.1",
 			Type:      "MySQL",
@@ -65,7 +65,7 @@
 
 		expected := []Backup{
 			Backup{
-				Created:     "2014-06-18T21:23:35",
+				Created:     timeVal,
 				Description: "Backup from Restored Instance",
 				ID:          "87972694-4be2-40f5-83f8-501656e0032a",
 				InstanceID:  "29af2cd9-0674-48ab-b87a-b160f00208e6",
@@ -74,7 +74,7 @@
 				ParentID:    "",
 				Size:        0.141026,
 				Status:      "COMPLETED",
-				Updated:     "2014-06-18T21:24:39",
+				Updated:     timeVal,
 				Datastore: datastores.DatastorePartial{
 					Version:   "5.1",
 					Type:      "MySQL",
@@ -101,7 +101,7 @@
 	th.AssertNoErr(t, err)
 
 	expected := &Backup{
-		Created:     "2014-02-13T21:47:16",
+		Created:     timeVal,
 		Description: "My Backup",
 		ID:          "61f12fef-edb1-4561-8122-e7c00ef26a82",
 		InstanceID:  "d4603f69-ec7e-4e9b-803f-600b9205576f",
@@ -110,7 +110,7 @@
 		ParentID:    "",
 		Size:        100,
 		Status:      "NEW",
-		Updated:     "2014-02-13T21:47:16",
+		Updated:     timeVal,
 		Datastore: datastores.DatastorePartial{
 			Version:   "5.1",
 			Type:      "MySQL",
diff --git a/rackspace/db/v1/backups/results.go b/rackspace/db/v1/backups/results.go
index 071cd33..82b551d 100644
--- a/rackspace/db/v1/backups/results.go
+++ b/rackspace/db/v1/backups/results.go
@@ -1,6 +1,8 @@
 package backups
 
 import (
+	"time"
+
 	"github.com/mitchellh/mapstructure"
 	"github.com/rackspace/gophercloud"
 	"github.com/rackspace/gophercloud/openstack/db/v1/datastores"
@@ -29,8 +31,8 @@
 	ParentID    string `json:"parent_id" mapstructure:"parent_id"`
 	Size        float64
 	Status      Status
-	Created     string
-	Updated     string
+	Created     time.Time `mapstructure:"-"`
+	Updated     time.Time `mapstructure:"-"`
 	Datastore   datastores.DatastorePartial
 }
 
@@ -64,6 +66,24 @@
 	}
 
 	err := mapstructure.Decode(r.Body, &response)
+	val := r.Body.(map[string]interface{})["backup"].(map[string]interface{})
+
+	if t, ok := val["created"].(string); ok && t != "" {
+		creationTime, err := time.Parse(time.RFC3339, t)
+		if err != nil {
+			return &response.Backup, err
+		}
+		response.Backup.Created = creationTime
+	}
+
+	if t, ok := val["updated"].(string); ok && t != "" {
+		updatedTime, err := time.Parse(time.RFC3339, t)
+		if err != nil {
+			return &response.Backup, err
+		}
+		response.Backup.Updated = updatedTime
+	}
+
 	return &response.Backup, err
 }
 
@@ -90,5 +110,32 @@
 	}
 
 	err := mapstructure.Decode(casted, &resp)
+
+	var vals []interface{}
+	switch (casted).(type) {
+	case interface{}:
+		vals = casted.(map[string]interface{})["backups"].([]interface{})
+	}
+
+	for i, v := range vals {
+		val := v.(map[string]interface{})
+
+		if t, ok := val["created"].(string); ok && t != "" {
+			creationTime, err := time.Parse(time.RFC3339, t)
+			if err != nil {
+				return resp.Backups, err
+			}
+			resp.Backups[i].Created = creationTime
+		}
+
+		if t, ok := val["updated"].(string); ok && t != "" {
+			updatedTime, err := time.Parse(time.RFC3339, t)
+			if err != nil {
+				return resp.Backups, err
+			}
+			resp.Backups[i].Updated = updatedTime
+		}
+	}
+
 	return resp.Backups, err
 }
diff --git a/rackspace/db/v1/configurations/fixtures.go b/rackspace/db/v1/configurations/fixtures.go
index aeacb0e..d8a2233 100644
--- a/rackspace/db/v1/configurations/fixtures.go
+++ b/rackspace/db/v1/configurations/fixtures.go
@@ -2,26 +2,32 @@
 
 import (
 	"fmt"
+	"time"
 
 	os "github.com/rackspace/gophercloud/openstack/db/v1/configurations"
 )
 
-const singleConfigJSON = `
+var (
+	timestamp  = "2015-11-12T14:22:42Z"
+	timeVal, _ = time.Parse(time.RFC3339, timestamp)
+)
+
+var singleConfigJSON = `
 {
-  "created": "2014-07-31T18:56:09",
+  "created": "` + timestamp + `",
   "datastore_name": "mysql",
   "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb",
   "datastore_version_name": "5.6",
   "description": "example_description",
   "id": "005a8bb7-a8df-40ee-b0b7-fc144641abc2",
   "name": "example-configuration-name",
-  "updated": "2014-07-31T18:56:09"
+  "updated": "` + timestamp + `"
 }
 `
 
-const singleConfigWithValuesJSON = `
+var singleConfigWithValuesJSON = `
 {
-  "created": "2014-07-31T15:02:52",
+  "created": "` + timestamp + `",
   "datastore_name": "mysql",
   "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb",
   "datastore_version_name": "5.6",
@@ -29,7 +35,7 @@
   "id": "005a8bb7-a8df-40ee-b0b7-fc144641abc2",
   "instance_count": 0,
   "name": "example-configuration-name",
-  "updated": "2014-07-31T15:02:52",
+  "updated": "` + timestamp + `",
   "values": {
     "collation_server": "latin1_swedish_ci",
     "connect_timeout": 120
@@ -127,25 +133,25 @@
 `
 
 var exampleConfig = os.Config{
-	Created:              "2014-07-31T18:56:09",
+	Created:              timeVal,
 	DatastoreName:        "mysql",
 	DatastoreVersionID:   "b00000b0-00b0-0b00-00b0-000b000000bb",
 	DatastoreVersionName: "5.6",
 	Description:          "example_description",
 	ID:                   "005a8bb7-a8df-40ee-b0b7-fc144641abc2",
 	Name:                 "example-configuration-name",
-	Updated:              "2014-07-31T18:56:09",
+	Updated:              timeVal,
 }
 
 var exampleConfigWithValues = os.Config{
-	Created:              "2014-07-31T15:02:52",
+	Created:              timeVal,
 	DatastoreName:        "mysql",
 	DatastoreVersionID:   "b00000b0-00b0-0b00-00b0-000b000000bb",
 	DatastoreVersionName: "5.6",
 	Description:          "example description",
 	ID:                   "005a8bb7-a8df-40ee-b0b7-fc144641abc2",
 	Name:                 "example-configuration-name",
-	Updated:              "2014-07-31T15:02:52",
+	Updated:              timeVal,
 	Values: map[string]interface{}{
 		"collation_server": "latin1_swedish_ci",
 		"connect_timeout":  120,
diff --git a/rackspace/db/v1/instances/fixtures.go b/rackspace/db/v1/instances/fixtures.go
index 9200dd9..c5ff37a 100644
--- a/rackspace/db/v1/instances/fixtures.go
+++ b/rackspace/db/v1/instances/fixtures.go
@@ -2,6 +2,7 @@
 
 import (
 	"fmt"
+	"time"
 
 	"github.com/rackspace/gophercloud"
 	"github.com/rackspace/gophercloud/openstack/db/v1/datastores"
@@ -9,9 +10,14 @@
 	os "github.com/rackspace/gophercloud/openstack/db/v1/instances"
 )
 
-const instance = `
+var (
+	timestamp  = "2015-11-12T14:22:42Z"
+	timeVal, _ = time.Parse(time.RFC3339, timestamp)
+)
+
+var instance = `
 {
-  "created": "2014-02-13T21:47:13",
+  "created": "` + timestamp + `",
   "datastore": {
     "type": "mysql",
     "version": "5.6"
@@ -39,7 +45,7 @@
   "id": "{instanceID}",
   "name": "json_rack_instance",
   "status": "BUILD",
-  "updated": "2014-02-13T21:47:13",
+  "updated": "` + timestamp + `",
   "volume": {
     "size": 2
   }
@@ -99,7 +105,7 @@
 {
   "instance": {
     "status": "BUILD",
-    "updated": "2014-10-14T18:42:15",
+    "updated": "` + timestamp + `",
     "name": "t2s1_ALT_GUEST",
     "links": [
       {
@@ -111,7 +117,7 @@
         "rel": "bookmark"
       }
     ],
-    "created": "2014-10-14T18:42:15",
+    "created": "` + timestamp + `",
     "id": "8367c312-7c40-4a66-aab1-5767478914fc",
     "volume": {
       "size": 1
@@ -172,9 +178,9 @@
 {
   "instance": {
     "status": "ACTIVE",
-    "updated": "2014-09-26T19:15:57",
+    "updated": "` + timestamp + `",
     "name": "t1_ALT_GUEST",
-    "created": "2014-09-26T19:15:50",
+    "created": "` + timestamp + `",
     "ip": [
       "10.0.0.2"
     ],
@@ -266,7 +272,7 @@
   "backups": [
     {
       "status": "COMPLETED",
-      "updated": "2014-06-18T21:24:39",
+      "updated": "` + timestamp + `",
       "description": "Backup from Restored Instance",
       "datastore": {
         "version": "5.1",
@@ -276,7 +282,7 @@
       "id": "87972694-4be2-40f5-83f8-501656e0032a",
       "size": 0.141026,
       "name": "restored_backup",
-      "created": "2014-06-18T21:23:35",
+      "created": "` + timestamp + `",
       "instance_id": "29af2cd9-0674-48ab-b87a-b160f00208e6",
       "parent_id": null,
       "locationRef": "http://localhost/path/to/backup"
@@ -295,8 +301,8 @@
 var instanceID = "{instanceID}"
 
 var expectedInstance = &Instance{
-	Created:   "2014-02-13T21:47:13",
-	Updated:   "2014-02-13T21:47:13",
+	Created:   timeVal,
+	Updated:   timeVal,
 	Datastore: datastores.DatastorePartial{Type: "mysql", Version: "5.6"},
 	Flavor: flavors.Flavor{
 		ID: "1",
@@ -317,13 +323,13 @@
 
 var expectedReplica = &Instance{
 	Status:  "BUILD",
-	Updated: "2014-10-14T18:42:15",
+	Updated: timeVal,
 	Name:    "t2s1_ALT_GUEST",
 	Links: []gophercloud.Link{
 		gophercloud.Link{Rel: "self", Href: "https://ord.databases.api.rackspacecloud.com/v1.0/5919009/instances/8367c312-7c40-4a66-aab1-5767478914fc"},
 		gophercloud.Link{Rel: "bookmark", Href: "https://ord.databases.api.rackspacecloud.com/instances/8367c312-7c40-4a66-aab1-5767478914fc"},
 	},
-	Created:   "2014-10-14T18:42:15",
+	Created:   timeVal,
 	ID:        "8367c312-7c40-4a66-aab1-5767478914fc",
 	Volume:    os.Volume{Size: 1},
 	Flavor:    flavors.Flavor{ID: "9"},
diff --git a/rackspace/db/v1/instances/requests_test.go b/rackspace/db/v1/instances/requests_test.go
index 2b40a04..7fa4601 100644
--- a/rackspace/db/v1/instances/requests_test.go
+++ b/rackspace/db/v1/instances/requests_test.go
@@ -121,7 +121,7 @@
 
 		expected := []backups.Backup{
 			backups.Backup{
-				Created:     "2014-06-18T21:23:35",
+				Created:     timeVal,
 				Description: "Backup from Restored Instance",
 				ID:          "87972694-4be2-40f5-83f8-501656e0032a",
 				InstanceID:  "29af2cd9-0674-48ab-b87a-b160f00208e6",
@@ -130,7 +130,7 @@
 				ParentID:    "",
 				Size:        0.141026,
 				Status:      "COMPLETED",
-				Updated:     "2014-06-18T21:24:39",
+				Updated:     timeVal,
 				Datastore:   datastores.DatastorePartial{Version: "5.1", Type: "MySQL", VersionID: "20000000-0000-0000-0000-000000000002"},
 			},
 		}
@@ -212,9 +212,9 @@
 
 	expectedReplica := &Instance{
 		Status:  "ACTIVE",
-		Updated: "2014-09-26T19:15:57",
+		Updated: timeVal,
 		Name:    "t1_ALT_GUEST",
-		Created: "2014-09-26T19:15:50",
+		Created: timeVal,
 		IP: []string{
 			"10.0.0.2",
 		},
diff --git a/rackspace/db/v1/instances/results.go b/rackspace/db/v1/instances/results.go
index e884288..4b1317e 100644
--- a/rackspace/db/v1/instances/results.go
+++ b/rackspace/db/v1/instances/results.go
@@ -1,6 +1,8 @@
 package instances
 
 import (
+	"time"
+
 	"github.com/mitchellh/mapstructure"
 	"github.com/rackspace/gophercloud"
 	"github.com/rackspace/gophercloud/openstack/db/v1/datastores"
@@ -12,10 +14,10 @@
 // Instance represents a remote MySQL instance.
 type Instance struct {
 	// Indicates the datetime that the instance was created
-	Created string //time.Time
+	Created time.Time `mapstructure:"-"`
 
 	// Indicates the most recent datetime that the instance was updated.
-	Updated string //time.Time
+	Updated time.Time `mapstructure:"-"`
 
 	// Indicates how the instance stores data.
 	Datastore datastores.DatastorePartial
@@ -66,6 +68,25 @@
 	}
 
 	err = mapstructure.Decode(body, &response)
+
+	val := body.(map[string]interface{})["instance"].(map[string]interface{})
+
+	if t, ok := val["created"].(string); ok && t != "" {
+		creationTime, err := time.Parse(time.RFC3339, t)
+		if err != nil {
+			return &response.Instance, err
+		}
+		response.Instance.Created = creationTime
+	}
+
+	if t, ok := val["updated"].(string); ok && t != "" {
+		updatedTime, err := time.Parse(time.RFC3339, t)
+		if err != nil {
+			return &response.Instance, err
+		}
+		response.Instance.Updated = updatedTime
+	}
+
 	return &response.Instance, err
 }
 
@@ -131,5 +152,32 @@
 	}
 
 	err := mapstructure.Decode(casted, &response)
+
+	var vals []interface{}
+	switch (casted).(type) {
+	case interface{}:
+		vals = casted.(map[string]interface{})["instances"].([]interface{})
+	}
+
+	for i, v := range vals {
+		val := v.(map[string]interface{})
+
+		if t, ok := val["created"].(string); ok && t != "" {
+			creationTime, err := time.Parse(time.RFC3339, t)
+			if err != nil {
+				return response.Instances, err
+			}
+			response.Instances[i].Created = creationTime
+		}
+
+		if t, ok := val["updated"].(string); ok && t != "" {
+			updatedTime, err := time.Parse(time.RFC3339, t)
+			if err != nil {
+				return response.Instances, err
+			}
+			response.Instances[i].Updated = updatedTime
+		}
+	}
+
 	return response.Instances, err
 }
