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
 }
