From 49fa03bf4286bd2cbf90b271fb65d4f70e5de57f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CA=BFAhed=20=CA=BFid?= Date: Sat, 4 Feb 2017 14:37:50 +0200 Subject: [PATCH] Allow using custom time format (#798) * Allow using custom time format I need to use custom time format in `conf/app.ini' like FORMAT = 2006-01-02 15:04:05 so that Gitea will display '2017-01-30 08:41:49' check this answer for more constants to format date PS: First GO commit * Refactor and validate TimeFormat (must have 2006, 01, 02, 15, 04 and 05) --- modules/setting/setting.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/setting/setting.go b/modules/setting/setting.go index ae7b8beb3a..51f5c2a454 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -732,6 +732,7 @@ please consider changing to GITEA_CUSTOM`) AttachmentMaxFiles = sec.Key("MAX_FILES").MustInt(5) AttachmentEnabled = sec.Key("ENABLE").MustBool(true) + TimeFormatKey := Cfg.Section("time").Key("FORMAT").MustString("RFC1123") TimeFormat = map[string]string{ "ANSIC": time.ANSIC, "UnixDate": time.UnixDate, @@ -748,7 +749,16 @@ please consider changing to GITEA_CUSTOM`) "StampMilli": time.StampMilli, "StampMicro": time.StampMicro, "StampNano": time.StampNano, - }[Cfg.Section("time").Key("FORMAT").MustString("RFC1123")] + }[TimeFormatKey] + // When the TimeFormatKey does not exist in the previous map e.g.'2006-01-02 15:04:05' + if len(TimeFormat) == 0 { + TimeFormat = TimeFormatKey + TestTimeFormat, _ := time.Parse(TimeFormat, TimeFormat) + if TestTimeFormat.Format(time.RFC3339) != "2006-01-02T15:04:05Z" { + log.Fatal(4, "Can't create time properly, please check your time format has 2006, 01, 02, 15, 04 and 05") + } + log.Trace("Custom TimeFormat: %s", TimeFormat) + } RunUser = Cfg.Section("").Key("RUN_USER").MustString(user.CurrentUsername()) // Does not check run user when the install lock is off.