diff --git a/rackspace/lb/v1/lbs/fixtures.go b/rackspace/lb/v1/lbs/fixtures.go
index 73b5bf4..6325310 100644
--- a/rackspace/lb/v1/lbs/fixtures.go
+++ b/rackspace/lb/v1/lbs/fixtures.go
@@ -20,33 +20,53 @@
 
 		fmt.Fprintf(w, `
 {
-  "loadBalancers": [
-    {
-      "name": "lb-site1",
-      "id": 71,
-      "protocol": "HTTP",
-      "port": 80,
-      "algorithm": "RANDOM",
-      "status": "ACTIVE",
-      "nodeCount": 3,
-      "virtualIps": [
-        {
-          "id": 403,
-          "address": "206.55.130.1",
-          "type": "PUBLIC",
-          "ipVersion": "IPV4"
-        }
-      ],
-      "created": {
-        "time": "2010-11-30T03:23:42Z"
+   "loadBalancers":[
+      {
+         "name":"lb-site1",
+         "id":71,
+         "protocol":"HTTP",
+         "port":80,
+         "algorithm":"RANDOM",
+         "status":"ACTIVE",
+         "nodeCount":3,
+         "virtualIps":[
+            {
+               "id":403,
+               "address":"206.55.130.1",
+               "type":"PUBLIC",
+               "ipVersion":"IPV4"
+            }
+         ],
+         "created":{
+            "time":"2010-11-30T03:23:42Z"
+         },
+         "updated":{
+            "time":"2010-11-30T03:23:44Z"
+         }
       },
-      "updated": {
-        "time": "2010-11-30T03:23:44Z"
+      {
+         "name":"lb-site2",
+         "id":72,
+         "created":{
+            "time":"2011-11-30T03:23:42Z"
+         },
+         "updated":{
+            "time":"2011-11-30T03:23:44Z"
+         }
+      },
+      {
+         "name":"lb-site3",
+         "id":73,
+         "created":{
+            "time":"2012-11-30T03:23:42Z"
+         },
+         "updated":{
+            "time":"2012-11-30T03:23:44Z"
+         }
       }
-    }
-  ]
+   ]
 }
-  `)
+			`)
 	})
 }
 
@@ -122,10 +142,10 @@
       }
     ],
     "created": {
-      "time": "2011-04-13T14:18:07Z"
+      "time": "2010-11-30T03:23:42Z"
     },
     "updated": {
-      "time": "2011-04-13T14:18:07Z"
+      "time": "2010-11-30T03:23:44Z"
     },
     "connectionLogging": {
       "enabled": false
diff --git a/rackspace/lb/v1/lbs/requests_test.go b/rackspace/lb/v1/lbs/requests_test.go
index 32af5c3..a8ec19e 100644
--- a/rackspace/lb/v1/lbs/requests_test.go
+++ b/rackspace/lb/v1/lbs/requests_test.go
@@ -2,6 +2,7 @@
 
 import (
 	"testing"
+	"time"
 
 	"github.com/rackspace/gophercloud"
 	"github.com/rackspace/gophercloud/pagination"
@@ -16,8 +17,18 @@
 const (
 	id1 = 12345
 	id2 = 67890
+	ts1 = "2010-11-30T03:23:42Z"
+	ts2 = "2010-11-30T03:23:44Z"
 )
 
+func toTime(t *testing.T, str string) time.Time {
+	ts, err := time.Parse(time.RFC3339, str)
+	if err != nil {
+		t.Fatalf("Could not parse time: %s", err.Error())
+	}
+	return ts
+}
+
 func TestList(t *testing.T) {
 	th.SetupHTTP()
 	defer th.TeardownHTTP()
@@ -48,8 +59,20 @@
 						Version: "IPV4",
 					},
 				},
-				Created: Datetime{Time: "2010-11-30T03:23:42Z"},
-				Updated: Datetime{Time: "2010-11-30T03:23:44Z"},
+				Created: Datetime{Time: toTime(t, ts1)},
+				Updated: Datetime{Time: toTime(t, ts2)},
+			},
+			LoadBalancer{
+				ID:      72,
+				Name:    "lb-site2",
+				Created: Datetime{Time: toTime(t, "2011-11-30T03:23:42Z")},
+				Updated: Datetime{Time: toTime(t, "2011-11-30T03:23:44Z")},
+			},
+			LoadBalancer{
+				ID:      73,
+				Name:    "lb-site3",
+				Created: Datetime{Time: toTime(t, "2012-11-30T03:23:42Z")},
+				Updated: Datetime{Time: toTime(t, "2012-11-30T03:23:44Z")},
 			},
 		}
 
@@ -118,8 +141,8 @@
 				Version: vips.IPV6,
 			},
 		},
-		Created:           Datetime{Time: "2011-04-13T14:18:07Z"},
-		Updated:           Datetime{Time: "2011-04-13T14:18:07Z"},
+		Created:           Datetime{Time: toTime(t, ts1)},
+		Updated:           Datetime{Time: toTime(t, ts2)},
 		ConnectionLogging: ConnectionLogging{Enabled: false},
 	}
 
@@ -192,8 +215,8 @@
 		SessionPersistence: sessions.SessionPersistence{Type: "HTTP_COOKIE"},
 		ConnectionThrottle: throttle.ConnectionThrottle{MaxConnections: 100},
 		Cluster:            Cluster{Name: "c1.dfw1"},
-		Created:            Datetime{Time: "2010-11-30T03:23:42Z"},
-		Updated:            Datetime{Time: "2010-11-30T03:23:44Z"},
+		Created:            Datetime{Time: toTime(t, ts1)},
+		Updated:            Datetime{Time: toTime(t, ts2)},
 		SourceAddrs: SourceAddrs{
 			IPv4Public:  "10.12.99.28",
 			IPv4Private: "10.0.0.0",
diff --git a/rackspace/lb/v1/lbs/results.go b/rackspace/lb/v1/lbs/results.go
index 338de80..7367f3a 100644
--- a/rackspace/lb/v1/lbs/results.go
+++ b/rackspace/lb/v1/lbs/results.go
@@ -1,6 +1,9 @@
 package lbs
 
 import (
+	"reflect"
+	"time"
+
 	"github.com/mitchellh/mapstructure"
 
 	"github.com/rackspace/gophercloud"
@@ -62,7 +65,7 @@
 
 // Datetime represents the structure of a Created or Updated field.
 type Datetime struct {
-	Time string
+	Time time.Time `mapstructure:"-"`
 }
 
 // LoadBalancer represents a load balancer API resource.
@@ -178,11 +181,37 @@
 		LBs []LoadBalancer `mapstructure:"loadBalancers" json:"loadBalancers"`
 	}
 
-	err := mapstructure.Decode(page.(LBPage).Body, &resp)
+	coll := page.(LBPage).Body
+	err := mapstructure.Decode(coll, &resp)
+
+	s := reflect.ValueOf(coll.(map[string]interface{})["loadBalancers"])
+
+	for i := 0; i < s.Len(); i++ {
+		val := (s.Index(i).Interface()).(map[string]interface{})
+
+		ts, err := extractTS(val, "created")
+		if err != nil {
+			return resp.LBs, err
+		}
+		resp.LBs[i].Created.Time = ts
+
+		ts, err = extractTS(val, "updated")
+		if err != nil {
+			return resp.LBs, err
+		}
+		resp.LBs[i].Updated.Time = ts
+	}
 
 	return resp.LBs, err
 }
 
+func extractTS(body map[string]interface{}, key string) (time.Time, error) {
+	val := body[key].(map[string]interface{})
+	ts, err := time.Parse(time.RFC3339, val["time"].(string))
+
+	return ts, err
+}
+
 type commonResult struct {
 	gophercloud.Result
 }
@@ -199,6 +228,21 @@
 
 	err := mapstructure.Decode(r.Body, &response)
 
+	json := r.Body.(map[string]interface{})
+	lb := json["loadBalancer"].(map[string]interface{})
+
+	ts, err := extractTS(lb, "created")
+	if err != nil {
+		return nil, err
+	}
+	response.LB.Created.Time = ts
+
+	ts, err = extractTS(lb, "updated")
+	if err != nil {
+		return nil, err
+	}
+	response.LB.Updated.Time = ts
+
 	return &response.LB, err
 }
 
