convert strings to time.Time
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
 }