diff --git a/json_formatter.go b/json_formatter.go
index f3729bf..266554e 100644
--- a/json_formatter.go
+++ b/json_formatter.go
@@ -26,6 +26,9 @@
 	// TimestampFormat sets the format used for marshaling timestamps.
 	TimestampFormat string
 
+	// DisableTimestamp allows disabling automatic timestamps in output
+	DisableTimestamp bool
+
 	// FieldMap allows users to customize the names of keys for various fields.
 	// As an example:
 	// formatter := &JSONFormatter{
@@ -57,7 +60,9 @@
 		timestampFormat = DefaultTimestampFormat
 	}
 
-	data[f.FieldMap.resolve(FieldKeyTime)] = entry.Time.Format(timestampFormat)
+	if !f.DisableTimestamp {
+		data[f.FieldMap.resolve(FieldKeyTime)] = entry.Time.Format(timestampFormat)
+	}
 	data[f.FieldMap.resolve(FieldKeyMsg)] = entry.Message
 	data[f.FieldMap.resolve(FieldKeyLevel)] = entry.Level.String()
 
diff --git a/json_formatter_test.go b/json_formatter_test.go
index 5baa93e..51093a7 100644
--- a/json_formatter_test.go
+++ b/json_formatter_test.go
@@ -169,3 +169,31 @@
 		t.Fatal("Expected JSON to format time key")
 	}
 }
+
+func TestJSONDisableTimestamp(t *testing.T) {
+	formatter := &JSONFormatter{
+		DisableTimestamp: true,
+	}
+
+	b, err := formatter.Format(WithField("level", "something"))
+	if err != nil {
+		t.Fatal("Unable to format entry: ", err)
+	}
+	s := string(b)
+	if strings.Contains(s, FieldKeyTime) {
+		t.Error("Did not prevent timestamp", s)
+	}
+}
+
+func TestJSONEnableTimestamp(t *testing.T) {
+	formatter := &JSONFormatter{}
+
+	b, err := formatter.Format(WithField("level", "something"))
+	if err != nil {
+		t.Fatal("Unable to format entry: ", err)
+	}
+	s := string(b)
+	if !strings.Contains(s, FieldKeyTime) {
+		t.Error("Timestamp not present", s)
+	}
+}
