如何使用语言环境将日期转换为 go 中的字符串?

2023-11-23

我这样将日期转换为字符串:

d.Format("Mon 02. Jan")

我得到类似的东西

Fri 27. Jan

如何切换区域设置并获取其他语言的字符串?


你不能。 Go 标准库不包含本地化的月份、日期和区域名称。这些名称被连接到time包裹。

例如,返回的月份名称Month.String()存储在未导出的time.month全局变量:

var months = [...]string{
    "January",
    "February",
    "March",
    "April",
    "May",
    "June",
    "July",
    "August",
    "September",
    "October",
    "November",
    "December",
}

func (m Month) String() string { return months[m-1] }

同样,工作日的名称来自Weekday.String(),存储在未导出的变量中time.days.

话虽如此,可能有第三方库支持您的需求。这是一个不完整的内容,可能对您有帮助:https://github.com/mattbaird/go-i18n-formats

正如 Igor Chubin 在下面分享的那样,这个第 3 方库更加完整:https://github.com/klauspost/lctime

另请注意,虽然提供通用的多语言时间格式包并不是一件容易的事,但如果您确实需要它,您可以采取time包,将其复制到您的项目中,然后将名称翻译为您需要的语言。

另请注意,由于支持少量语言和少量布局,因此您可以轻松创建格式。

例如,下面的代码格式化给定的time.Time匈牙利语值,使用您在问题中使用的布局:

func Format(t time.Time) string {
    return fmt.Sprintf("%s %02d. %s",
        days[t.Weekday()][:3], t.Day(), months[t.Month()-1][:3],
    )
}

var days = [...]string{
    "Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat"}

var months = [...]string{
    "Január", "Február", "Március", "Április", "Május", "Június",
    "Július", "Augusztus", "Szeptember", "Október", "November", "December",
}

测试它:

fmt.Println(Format(time.Now()))

输出在去游乐场:

Ked 10. Nov

我本地机器上的输出:

Pén 27. Jan
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用语言环境将日期转换为 go 中的字符串? 的相关文章

  • 如何在 Visual Studio Code 中为 Golang 启用竞争检测器?

    我搜索了很多网页来找到我应该放入哪个短语settings json在 VS Code Golang 扩展 由 Microsoft 发布 中添加构建标志 在我的例子中是竞赛检测器 I added go buildFlags race 在扩展名
  • Go MSSQL 连接

    如何提供 MSSQL 连接 它说它始终与代码相关 即使信息不正确 也不会报错 package main import database sql fmt github com denisenkom go mssqldb log var ser
  • Golang Appengine 项目无法构建

    我有一个使用 golang 的应用程序引擎项目 我已经大约一年没有碰过了 我现在无法让它在之前构建的机器上构建 我收到以下错误 go app builder 解析输入失败 解析器 src golang org x net internal
  • 计算两个 Java 日期实例之间的差异

    我正在使用Java的java util DateScala 中的类并想要比较Date对象和当前时间 我知道我可以使用 getTime 计算增量 new java util Date getTime oldDate getTime 然而 这只
  • GO并发编程测试

    我试图确保我的并发程序不存在以下情况 僵局 livelock 饥饿 我找到了以下工具http blog golang org race detector http blog golang org race detector 我尝试编译并运行
  • 如何在 Goji (Golang) 中使用不同的中间件创建单独的路由组?

    我正在使用Goji https github com zenazn goji https github com zenazn goji 并希望定义具有自己的中间件的路由组 例如 下面的所有路径 company应使用 LDAP 身份验证并定义
  • 取消用户特定的 goroutine [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个应用程序 网络应用程序 允许用户使用 twitter oauth 登录并提供自动推文删除功能 用户登录到 Web 应用程序后
  • 比较休眠映射的日期?

    如何使用 Hibernate 将日期从 java 对象映射到数据库 我尝试不同的方法 但我对它们不满意 为什么 让我解释一下我的问题 我有以下类 1 包括我调用的主要方法和以下映射 2 当您查看控制台输出时 您可以看到有关此方法的问题 fa
  • Java 8 文档日期时间教程错误

    The Oracle 临时查询教程页面 https docs oracle com javase tutorial datetime iso queries html显示此示例代码 Code TemporalQueries query Te
  • new Date() 和日历日期之间的区别

    在实践中 下面两个日期有什么区别 Date date new Date Date date Calendar getInstance getTime 我的理解是 new Date 是基于 UTC GMT 的日期 而日历的 getTime 基
  • 我们如何在 Golang 中组合多个错误字符串?

    我是 golang 新手 我的应用程序需要在循环中返回多个错误 稍后需要组合并作为单个错误字符串返回 我无法使用字符串函数来组合错误消息 在返回之前可以使用什么方法将这些错误合并为一个错误 package main import fmt s
  • 为什么我的 SQL 占位符没有被替换(使用 Go pq)?

    根据文档 我正在这样做 var thingname string asdf var id int err database QueryRow SELECT id from things where thing thingname Scan
  • 我可以根据我正在构建的操作系统导入 Golang 包吗?

    假设我有一个基于哪个操作系统的 go 项目 在某些情况下是哪个发行版 我想使用 Systemd 客户端包 Upstart 客户端包 sysv 客户端包 launchd 客户端包 是否可以有选择地导入每个包 以便我只导入我正在构建的每个操作系
  • Spring安全+LocaleResolver

    我需要在身份验证成功后更改区域设置 区域设置解析器
  • Golang中如何删除字符串的最后一个字符?

    我想删除字符串的最后一个字符 但在此之前我想检查最后一个字符是否是 如何才能做到这一点 以下是删除尾随加号的几种方法 package main import fmt strings func TrimSuffix s suffix stri
  • 如何将日期字符串解析为Date? [复制]

    这个问题在这里已经有答案了 如何将下面的日期字符串解析为Date object String target Thu Sep 28 20 29 30 JST 2000 DateFormat df new SimpleDateFormat E
  • 错误“binary.Write:无效类型”是什么意思?

    下面显示的代码 我创建了一个结构类型并希望将其编码为二进制 但它显示binary Write invalid type main Stu错误 我读过一些类似的代码 但我找不到为什么我的代码不起作用 type Stu struct Name
  • SimpleDateFormat.parse() 忽略模式中的字符数

    我正在尝试解析一个可以具有不同格式的日期字符串 尽管字符串不应与第二个模式匹配 但它却以某种方式匹配 因此返回错误的日期 这是我的代码 import java text ParseException import java text Sim
  • Perl 和 Unix 如何以相同的顺序对 Unicode 字符串进行排序?

    我正在尝试获取 Perl 和 GNU Linuxsort 1 程序就如何对 Unicode 字符串进行排序达成一致 我在跑sort with LANG en US UTF 8 在Perl程序中我尝试了以下方法 use Unicode Col
  • 为什么 Go 中只有 int 而没有 float?

    在 Go 中 有这样的类型int这可能相当于int32 or int64取决于系统架构 我可以声明一个整数变量而不用担心它的大小 var x int 为什么没有这个类型float 这相当于float32 or float64取决于我的系统架

随机推荐

  • android 中如何知道某个应用程序将被卸载?

    我想实现像 AppLock 应用程序正在做的事情 如果在其设置中设置为锁定应用程序卸载 安装 则在卸载任何应用程序时 恰好单击卸载按钮 会出现一个锁屏 要求输入密码 图案 只有输入密码后 用户才可以卸载应用程序 当一个人得到的意图是什么 或
  • 在事件处理程序中使用它

    我试图寻找它的意义thisDOM 级别 3 事件规范中事件处理函数内的关键字 根据我的实验this指的是event currentTarget object 标准中是否提到了这种行为 根据 JavaScript 权威指南 一书this指的是
  • iOS Safari 滚动到顶部在某些页面上不起作用。为什么?

    免责声明 该网站同时已更新 新版本的设计不再出现此问题 在我建立的一个新网站上 我注意到 Safari iOS 5 中有一个奇怪的怪癖 通常 您可以点击 Safari 顶部的黑条来滚动到任何网页的顶部 在我的新网站上 这适用于主页 但不适用
  • 如何在经典 ASP 中使变量静态(或“全局”)?

    我想让我的变量静态或 全局 因此与 NET 中的静态效果相同 访问它的每个会话都会得到相同的结果 如果一个会话修改它 它也会影响其他所有人 如何在经典 ASP 中实现这一目标 如果您想要一个可在应用程序范围内访问的变量 则可以使用应用程序对
  • 在 numpy 数组中设置空值

    如何根据条件将 numpy 数组中的某些值设为 null 我不明白为什么在不满足条件的情况下我最终会得到 0 而不是 null 或空值 b 是一个填充有 0 和 1 值的 numpy 数组 c 是另一个完全填充的 numpy 数组 所有阵列
  • Visual Studio 2008 中的 WatiN - 第二个测试方法失败

    当尝试在 Visual Studio 2008 中运行一个非常简单的 WatiN 2 0 CTP3 测试时 我发现第一个测试总是执行得很好 第二个测试方法似乎破坏了 IE 对象中的某些内容 产生以下异常 测试方法 testProject W
  • 如何使用自定义 IXmlSerialized 作为 XmlAttribute?

    我实施IXmlSerializable对于以下将 RGB 颜色值编码为单个字符串的类型 public class SerializableColor IXmlSerializable public int R get set public
  • 安装 Tensorflow 时出错 - Python 3.8

    我是编程新手 正在学习必须安装 Tensorflow 的课程 问题是我正在使用 Python 3 8 据我所知 Tensorflow 不支持它 我已经下载了 Python 3 6 但我不知道如何将其切换为默认的 python 版本 最好使用
  • 不同文化中的 JavaScript parseFloat

    我对 JavaScript 的 parseFloat 函数在世界不同地区的默认行为有疑问 在美国 如果对字符串 123 34 调用 parseFloat 您将得到浮点数 123 34 如果我在瑞典或巴西开发代码 并且他们使用逗号而不是句点作
  • 是否可以“git diff”2 个字符串?

    我有 2 个字符串 我想要它们之间的 git diff 我可以创建 file1 并添加 string1 作为其内容 然后我可以创建 file2 并添加 string2 作为其内容 然后我可以 git diff file1 和 file2 但
  • 配置错误:未满足包要求(sqlite3 > 3.7.4)

    我正在尝试按照以下说明在 Centos 7 上安装 php https www php net manual en install unix nginx php 我的nginx版本 nginx 1 19 0 我从下载了 php 7 4 6
  • React:useState 还是 useRef?

    我正在阅读有关 React 的内容useState and useRef at 挂钩常见问题解答 我对一些用例感到困惑 这些用例似乎同时具有 useRef 和 useState 的解决方案 而且我不确定哪种方式是正确的 来自 Hook 常见
  • 使两列高度相同

    我正在尝试制作 2 列设计 使用推特引导程序 有 2 根等高的柱子 让我们看这个例子 div class row fluid div class span2 ul li Item 1 li li Item 2 li li Item 3 li
  • 如何在依赖检查之前运行 Maven 插件

    我想在依赖项检查之前运行 maven install plugin 我怎样才能做到这一点 插件配置
  • 如何删除轮廓 mat-form-field 边框角半径

    我正在使用角材料轮廓垫形式场来设计形式 我得到了带有边框角半径的默认 mat form field 轮廓文本框视图 有什么方法可以删除轮廓 mat form field 的边框角半径并转换为方形文本框视图 我尝试使用以下内容更改角度材料 m
  • 在 XPath 中通过 concat() 换行(\n)?

    所以我的系统中有一个员工的 XML 文档
  • 如何在phpmyadmin中设置max_allowed_pa​​cket?

    我必须改变max allowed packetMySQL 中的大小使用phpmyadmin 但我不知道该怎么做 当我尝试时set global max allowed packet 10M in phpmyadmin它给出了这个错误 122
  • RMI 中可以通过引用传递吗?

    我读过各种有关使用 RMI 传递变量的文章 有些人说在 RMI 中不可能通过引用传递变量 例如 this one and this one 而其他人则说这是可能的 例如 this one this one and this one 有人可以
  • 使用唯一/随机名称存储文件

    使用新的 Firebase API 您可以从客户端代码将文件上传到云存储 这examples假设文件名在上传期间是已知的或静态的 Create a root reference var storageRef firebase storage
  • 如何使用语言环境将日期转换为 go 中的字符串?

    我这样将日期转换为字符串 d Format Mon 02 Jan 我得到类似的东西 Fri 27 Jan 如何切换区域设置并获取其他语言的字符串 你不能 Go 标准库不包含本地化的月份 日期和区域名称 这些名称被连接到time包裹 例如 返