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
 }
