human readable time representation for toString

Example:
 LinkEvent{time=2014-10-28T23:24:23.461, ...

Change-Id: I439cea488afd97dfa4f1c1e5770f2e2d7b64d321
diff --git a/core/api/pom.xml b/core/api/pom.xml
index f357977..100e63f 100644
--- a/core/api/pom.xml
+++ b/core/api/pom.xml
@@ -36,6 +36,10 @@
             <groupId>com.google.guava</groupId>
             <artifactId>guava-testlib</artifactId>
         </dependency>
+        <dependency>
+            <groupId>joda-time</groupId>
+            <artifactId>joda-time</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
diff --git a/core/api/src/main/java/org/onlab/onos/event/AbstractEvent.java b/core/api/src/main/java/org/onlab/onos/event/AbstractEvent.java
index cc4735d..0fc8eaa 100644
--- a/core/api/src/main/java/org/onlab/onos/event/AbstractEvent.java
+++ b/core/api/src/main/java/org/onlab/onos/event/AbstractEvent.java
@@ -17,6 +17,8 @@
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 
+import org.joda.time.LocalDateTime;
+
 /**
  * Base event implementation.
  */
@@ -67,8 +69,11 @@
 
     @Override
     public String toString() {
-        return toStringHelper(this).add("time", time).add("type", type())
-                .add("subject", subject()).toString();
+        return toStringHelper(this)
+                .add("time", new LocalDateTime(time))
+                .add("type", type())
+                .add("subject", subject())
+                .toString();
     }
 
 }
diff --git a/core/api/src/main/java/org/onlab/onos/mastership/MastershipEvent.java b/core/api/src/main/java/org/onlab/onos/mastership/MastershipEvent.java
index 74f8161..1aecfb4 100644
--- a/core/api/src/main/java/org/onlab/onos/mastership/MastershipEvent.java
+++ b/core/api/src/main/java/org/onlab/onos/mastership/MastershipEvent.java
@@ -15,6 +15,7 @@
  */
 package org.onlab.onos.mastership;
 
+import org.joda.time.LocalDateTime;
 import org.onlab.onos.cluster.RoleInfo;
 import org.onlab.onos.event.AbstractEvent;
 import org.onlab.onos.net.DeviceId;
@@ -83,7 +84,7 @@
     @Override
     public String toString() {
         return MoreObjects.toStringHelper(getClass())
-                .add("time", time())
+                .add("time", new LocalDateTime(time()))
                 .add("type", type())
                 .add("subject", subject())
                 .add("roleInfo", roleInfo)
diff --git a/core/api/src/main/java/org/onlab/onos/net/device/DeviceEvent.java b/core/api/src/main/java/org/onlab/onos/net/device/DeviceEvent.java
index eccc14d..7fa981e 100644
--- a/core/api/src/main/java/org/onlab/onos/net/device/DeviceEvent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/device/DeviceEvent.java
@@ -15,6 +15,7 @@
  */
 package org.onlab.onos.net.device;
 
+import org.joda.time.LocalDateTime;
 import org.onlab.onos.event.AbstractEvent;
 import org.onlab.onos.net.Device;
 import org.onlab.onos.net.Port;
@@ -131,7 +132,11 @@
         if (port == null) {
             return super.toString();
         }
-        return toStringHelper(this).add("time", time()).add("type", type())
-            .add("subject", subject()).add("port", port).toString();
+        return toStringHelper(this)
+                .add("time", new LocalDateTime(time()))
+                .add("type", type())
+                .add("subject", subject())
+                .add("port", port)
+                .toString();
      }
 }
diff --git a/features/features.xml b/features/features.xml
index db0ede6..088e42f 100644
--- a/features/features.xml
+++ b/features/features.xml
@@ -32,6 +32,8 @@
         <bundle>mvn:io.netty/netty-transport-native-epoll/4.0.23.Final</bundle>
         <bundle>mvn:commons-pool/commons-pool/1.6</bundle>
 
+        <bundle>mvn:joda-time/joda-time/2.5</bundle>
+
         <bundle>mvn:com.hazelcast/hazelcast/3.3.2</bundle>
         <bundle>mvn:io.dropwizard.metrics/metrics-core/3.1.0</bundle>
         <bundle>mvn:io.dropwizard.metrics/metrics-json/3.1.0</bundle>
diff --git a/pom.xml b/pom.xml
index 095e40e..83ed0f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -319,6 +319,11 @@
                 <artifactId>netty-transport-native-epoll</artifactId>
                 <version>${netty4.version}</version>
             </dependency>
+            <dependency>
+                <groupId>joda-time</groupId>
+                <artifactId>joda-time</artifactId>
+                <version>2.5</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>