func NoTime() TimeFormatter {
	return TimeFormatter(func(_ time.Time) Field {
		return Skip()
	})
}
NoTime drops the entry time altogether. It's often useful in testing, since
it removes the need to stub time.Now.
package zap
import "time"
type JSONOption interface {
	apply(*jsonEncoder)
}
type MessageFormatter func(string) Field
func (mf MessageFormatter) apply(enc *jsonEncoder) {
	enc.messageF = mf
}
func MessageKey(key string) MessageFormatter {
	return MessageFormatter(func(msg string) Field {
		return String(key, msg)
	})
}
type TimeFormatter func(time.Time) Field
func (tf TimeFormatter) apply(enc *jsonEncoder) {
	enc.timeF = tf
}
func EpochFormatter(key string) TimeFormatter {
	return TimeFormatter(func(t time.Time) Field {
		return Time(key, t)
	})
}
func RFC3339Formatter(key string) TimeFormatter {
	return TimeFormatter(func(t time.Time) Field {
		return String(key, t.Format(time.RFC3339))
	})
}