func (f *TimestampFlag) Names() []string {
	return flagNames(f.Name, f.Aliases)
}
Names returns the names of the flag
package cli
import (
	"flag"
	"fmt"
	"time"
)
type Timestamp struct {
	timestamp  *time.Time
	hasBeenSet bool
	layout     string
}
func NewTimestamp(timestamp time.Time) *Timestamp {
	return &Timestamp{timestamp: &timestamp}
}
func (t *Timestamp) SetTimestamp(value time.Time) {
	if !t.hasBeenSet {
		t.timestamp = &value
		t.hasBeenSet = true
	}
}
func (t *Timestamp) SetLayout(layout string) {
	t.layout = layout
}
func (t *Timestamp) Set(value string) error {
	timestamp, err := time.Parse(t.layout, value)
	if err != nil {
		return err
	}
	t.timestamp = &timestamp
	t.hasBeenSet = true
	return nil
}
func (t *Timestamp) String() string {
	return fmt.Sprintf("%#v", t.timestamp)
}
func (t *Timestamp) Value() *time.Time {
	return t.timestamp
}
func (t *Timestamp) Get() interface{} {
	return *t
}
type TimestampFlag struct {
	Name        string
	Aliases     []string
	Usage       string
	EnvVars     []string
	FilePath    string
	Required    bool
	Hidden      bool
	Layout      string
	Value       *Timestamp
	DefaultText string
	HasBeenSet  bool
}
func (f *TimestampFlag) IsSet() bool {
	return f.HasBeenSet
}
func (f *TimestampFlag) String() string {
	return FlagStringer(f)
}