java - 将 Date 更改为设备本地时区的字符串

标签 java android

我从数据库中获取一个 Date 数据类型,如下所示 Mon Sep 14 11:30:00 GMT+03:00 2020。我想将此值更改为一个字符串,所以我使用了这个函数。

public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm";


public static String dateToString(Date date){
    DateFormat dateFormat = new SimpleDateFormat(General.DATE_FORMAT);
    dateFormat.setTimeZone(TimeZone.getDefault());
    if(date == null)
        return "";
    return dateFormat.format(date);
}

这个函数给了我这个输出 2020-09-14 11:30 但根据我的 Android 设备时间它应该是 2020-09-14 02:30区。有什么建议吗?

最佳答案

尝试 LocalegetDefault() 方法

public static String dateToString(Date date){
    DateFormat dateFormat = new SimpleDateFormat(General.DATE_FORMAT, Locale.getDefault());
    dateFormat.setTimeZone(TimeZone.getDefault());
    if(date == null)
        return "";
    return dateFormat.format(date);
}

希望它对您有用。谢谢。

关于java - 将 Date 更改为设备本地时区的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63897101/

相关文章:

java - 将变量/对象保存到 YAML 文件(Spigot)

java.lang.RuntimeException : Unable to instantiate receiver : java. lang.ClassNotFoundException

java - Android 雅虎 Aviate 启动器页面滑动效果

java - 如何让深色模式在我的应用程序上运行?

java - LinkedBlockingQueue 和原语

java - 如果可以控制两端,Java 的开发版本和部署版本是否应该相同?

java - 如何配置 slf4j-simple

java - 如何在android studio中使用socket.io加载 map 后添加新标记

java - 如何创建带有加载动画的自定义 View - 从左到右填充自定义文本?

java - 这是 "better"。 AtomicIntegerArray(1/0 为真/假)与 AtomicBoolean[]?