登录
首页 >  Golang >  Go问答

使用 Go 的 time.Format 时转义数字

来源:stackoverflow

时间:2024-04-11 22:27:31 247浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《使用 Go 的 time.Format 时转义数字》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

我目前正在尝试获取 time.time 对象并生成一个格式化字符串,该字符串恰好包含一些我不想解析为时间的数字。例如,考虑以下程序:

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.now()
    msg := now.format("encountered a 502 error on 2006-01-02 15:02 mst") 
    fmt.println(msg)
}

不幸的是,文本“502”在这里被解释为时间:运行此代码将产生类似 encountered a 1112 error on 2018-07-12 9:12 utc 的输出。

有什么方法可以转义 502 数字,这样它们就不会被解释为数字吗?例如。类似于如何在实现 strftime 样式格式化逻辑的语言中使用 %% 来转义 % 元字符?

或者是我唯一的选择是将其拆分并使用两个格式化操作而不是一个?

nowString := now.Format("2006-01-02 15:02 MST")
msg := fmt.Sprintf("Encountered 502 error on %s", nowString)

解决方案


不,time.format 中的数字没有转义。该方法的目的是格式化时间,而不是一般格式化字符串。

如果从多个位置使用它,通常的解决方案是创建一个简单的函数来进行格式化

func nowMessage(msg string) string {
    const layout = "2006-01-02 15:02 MST"
    return fmt.Sprintf("%s %s", msg, time.Now().Format(layout))
}

以上就是《使用 Go 的 time.Format 时转义数字》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>