【问题标题】:Replace EDT timezone with ET on Android在 Android 上用 ET 替换 EDT 时区
【发布时间】:2018-01-23 20:16:50
【问题描述】:

我想用 ET 替换 EDT 时区字符串。这是业务需求,我有一种强烈的感觉,这在 Android 上是不可能的。

我有以下代码:

    SimpleDateFormat df = new SimpleDateFormat(context.getString(R.string.time_login), Locale.US);

    <string name="time_login">\'Last login:\' MMMM dd, yyyy \'at\' h:mm a z</string>

这给了我这个结果:美国东部时间 2017 年 8 月 11 日凌晨 3:31

我想做的就是用“ET”替换“EDT”。你们中有人做过这样的事情吗?

【问题讨论】:

  • 这是您需要进行的唯一替换吗?如果是这样,你能不能只放 'ET' 而不是 z ?或者您是否正在寻找适用于其他时区的更广泛的东西?如果是这样,您对缩略语不像在美国那样工作的时区有什么期望?

标签: android date timezone


【解决方案1】:

是的,您可以使用 DateFormatSymbols 更改该信息。
我让你定义时区数组的部分,但结构可能是这样的:

private static DateFormatSymbols sym = DateFormatSymbols.getInstance(Locale.US);

static {
    // Here you call sym.setZoneStrings(array);
    // Check this documentation to see the array format https://developer.android.com/reference/java/text/DateFormatSymbols.html#setZoneStrings(java.lang.String[][])
}

private static SimpleDateFormat formatter = new SimpleDateFormat(context.getString(R.string.time_login), sym);

【讨论】:

    猜你喜欢
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 2010-11-01
    • 2014-05-18
    • 2019-07-24
    • 2018-10-20
    相关资源
    最近更新 更多