根据用户的区域设置和偏好设置日期和时间的格式(以秒为单位)

2024-01-06

我试图根据用户的设置获取格式化的日期(年、月、日)和时间(小时、分钟、秒)字符串。This https://groups.google.com/forum/#!topic/android-developers/I35vKNWqLdQAndroid 开发者 Google 群组中的帖子描述了我遇到的确切问题,但没有人帮助该人解决它。我总结一下:

Android 有这些类尝试执行上述操作,但没有一个类同时使用用户首选项并显示秒数。

  1. java.text.DateFormat
    不使用“设置”应用中设置的首选项

  2. android.text.format.DateFormat
    Gets a java.text.DateFormat使用正确格式化输出的对象getDateFormat() and getTimeFormat(), but getTimeFormat()不包括秒。

  3. android.text.format.DateUtils
    不使用在“设置”应用程序中显示日期的首选项设置,也无法显示秒。

例如,将“设置”中的首选项设置为 DD/MM/YYYY 且 24 小时格式 = 打开,运行以下代码:

long timestamp=System.currentTimeMillis();

sometextview.setText(
    java.text.format.DateFormat.getDateTimeInstance().format(new Date(timestamp)) 

    +"\n"+ 

    android.text.format.DateFormat.getDateFormat(this).format(new Date(timestamp))
    +" "+
    android.text.format.DateFormat.getTimeFormat(this).format(new Date(timestamp))

    +"\n"+

    android.text.format.DateUtils.formatDateTime(this,
                                                 timestamp,    
                                                 DateUtils.FORMAT_SHOW_DATE| 
                                                 DateUtils.FORMAT_SHOW_TIME|
                                                 DateUtils.FORMAT_SHOW_YEAR)
);

在文本视图中给出以下输出:

Apr 27,2014 5:47:18 PM
27/04/2014 17:47
April 27,2014, 17:47

没有一个给出所需的输出,使用上述首选项将是这样的:

27/04/2014 17:47:18 

我已经调查过乔达时间安卓 https://github.com/dlew/joda-time-android图书馆也是如此,但它似乎没有做我需要的事情(如果我错了,请纠正我)。

TL;DR:如何根据用户偏好设置日期/时间格式有秒在安卓上?


Using @I wish I could think of a good根据建议,我编写了以下代码,使用区域设置和用户设置格式化日期:

public static String timeDateStringFromTimestamp(Context applicationContext,long timestamp){
    String timeDate;
    String androidDateTime=android.text.format.DateFormat.getDateFormat(applicationContext).format(new Date(timestamp))+" "+
            android.text.format.DateFormat.getTimeFormat(applicationContext).format(new Date(timestamp));
    String javaDateTime = DateFormat.getDateTimeInstance().format(new Date(timestamp));
    String AmPm="";
    if(!Character.isDigit(androidDateTime.charAt(androidDateTime.length()-1))) {
        if(androidDateTime.contains(new SimpleDateFormat().getDateFormatSymbols().getAmPmStrings()[Calendar.AM])){
            AmPm=" "+new SimpleDateFormat().getDateFormatSymbols().getAmPmStrings()[Calendar.AM];
        }else{
            AmPm=" "+new SimpleDateFormat().getDateFormatSymbols().getAmPmStrings()[Calendar.PM];
        }
        androidDateTime=androidDateTime.replace(AmPm, "");
    }
    if(!Character.isDigit(javaDateTime.charAt(javaDateTime.length()-1))){
        javaDateTime=javaDateTime.replace(" "+new SimpleDateFormat().getDateFormatSymbols().getAmPmStrings()[Calendar.AM], "");
        javaDateTime=javaDateTime.replace(" "+new SimpleDateFormat().getDateFormatSymbols().getAmPmStrings()[Calendar.PM], "");
    }
    javaDateTime=javaDateTime.substring(javaDateTime.length()-3);
    timeDate=androidDateTime.concat(javaDateTime);
    return timeDate.concat(AmPm);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据用户的区域设置和偏好设置日期和时间的格式(以秒为单位) 的相关文章

随机推荐

  • 实现返回带有闭包的结构的工厂函数

    假设我们有一个结构体StoresFnMut借助泛型参数存储闭包 它应该通过通用类型字段存储 以确保静态调度 存储的闭包通常非常简单 例如 单个数字加法 但调用频率很高 所以动态调度会对性能产生相当大的影响 struct StoresFnMu
  • 覆盖 Glassfish 生成的 WSDL 服务端点地址

    我有一个由 wsgen 通过 Maven 生成的 Web 服务 当我将服务部署到 Glassfish 时 它会将服务器 URL 放入 WSDL 中 我们的 Glassfish 服务器前面有一个 Apache 代理服务器 这一切意味着当有人访
  • 使用 SQL 对表进行“转置”

    我不知道这个运算是否有名称 但它类似于线性代数中的转置 有没有办法将 1 by n 表 T1 转换为 c 1 c 2 c 3 a n 1 2 3 n 放入如下所示的 n 2 表中 key val c 1 1 b 2 2 c 3 3 a n
  • Google Cloud Storage 基于 IP 地址的文件访问策略

    有没有办法根据客户端IP地址限制Google Cloud Storage中某个存储桶中所有文件的访问 我在那里存储了一个文件 该文件只能通过特定的 IP 地址访问 这个怎么做 不 目前没有办法做到这一点
  • 在运行时交换正在运行的 jar

    我正在构建一个更新系统 其中我需要能够在运行时替换正在运行的应用程序 jar 的引用 jar 但是 当我尝试在 jar 上执行文件实用程序功能 例如 setLastModified 时 我遇到了 Windows 上的文件锁定问题 经过一番谷
  • 如何在 SSRS 报告中以给定字符串格式显示时间值?

    我想在 SSRS 报告中显示持续时间 我的数据库字段是 SQL 中的时间 它转换 SSRS 中的时间跨度 格式为 下午 1 00 下午 3 50 我怎样才能做到这一点 Fields StartTime Value ToString PM F
  • 我应该使用 Vagrant 还是 Docker 来创建隔离环境? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我使用Ubuntu进行开发和部署 需要创建一个隔离的环境 为此 我正在考虑 Vagrant 或 Docker 这些解决方案有何优缺点
  • 如何拆分 ipython 笔记本

    我的 Jupyter 笔记本越来越长 这使得导航变得困难 我想将每一章 从标题 1 开始的 Cel 保存到不同的文件中 我怎样才能做到这一点 在笔记本之间剪切和粘贴多个单元似乎是不可能的 这是我使用的方法 虽然有点尴尬 但很有效 使用 文件
  • Android 上 libgdx 项目中的蓝牙

    谁能给我一些关于使用蓝牙的建议libgdx安卓上有游戏吗 我的问题是整个代码都在 MyGame 项目中MyGame Android只有MainActivity在 Android 上启动游戏的类 我可以让蓝牙在普通的 Android 应用程序
  • CSS 动画无法在 Chrome 上运行 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个通过 CSS 动画淡入的图像标题 它可以在 Safari 和 Firefox 上运行 但不能在 Chrome 上运行 我在 28
  • Rails 和 MiniTest:添加附加文件夹

    我使用 Ruby 2 和 Rails 4 我有一个文件夹test lib 其中有一些测试 但跑步rake test不使用它们 仅其他测试 模型 控制器等 正在运行 我必须在哪里添加lib folder 我已经尝试过了MiniTest Rai
  • 通过强制转换在 uint8_t[8] 和 uint64_t 之间安全转换?

    我目前正在做的方式 我宁愿摆脱memcpy call uint64 t integer uint8 t string 8 memcpy integer string 8 or swap the parameters 假设integer数组长
  • 使用 VBA 更改 Office 功能区中元素的属性

    我是 VBA 和 Office Ribbon UI 的初学者 我正在使用 Office 2007 并使用自定义 UI 在 PPTM 中开发功能区 我添加了一组 XML 如下所示
  • html5可以自动全屏吗?

    我基于在网络浏览器中使用全屏 API http hacks mozilla org 2012 01 using the fullscreen api in web browsers 进行全屏显示 但仅适用于单击事件或控制台萤火虫 而不是提交
  • 将 WriteableBitmap 转换为 Bitmap 以在 EmguCV 中使用

    在我的代码中 我从字节数组 依次从 Kinect 接收 WriteableBitmap 我想将它们转换为位图以与 EmguCV 一起使用 目前这是我的代码 Copy the pixel data from the image to a te
  • Android ListView:如何避免在bindView()中查询数据库?需要获取一对多关系数据

    我有一个列表视图来显示专辑 在每个相册列表项中 我需要显示该相册中每张照片的一些信息 这是我的光标加载器的样子 Override public Loader
  • 在 Activity 中调用第三方库的本机方法两次会导致 Android 应用程序关闭

    我在我的应用程序中集成了两个本机库 so 这些库编译得很好 我也可以将它们加载到我的应用程序中 第一次调用库的本机方法时 它工作正常 但如果我在活动中再次调用相同的方法 应用程序将关闭 我面临的问题与这里提到的完全相同 http grokb
  • racket程序与python程序之间的通信

    我想要球拍程序和Python程序之间的通信 我的球拍代码 lang racket define values sp o i e subprocess f f f hello exe display server i flush output
  • 正确[超级dealloc]

    dealloc 方法中语句的顺序重要吗 是否 super dealloc 需要在方法的顶部吗 有关系吗 也在例如viewDidLoad 应该 super viewDidLoad 位于方法的顶部 It 绝对地很重要 您的操作取决于您使用的是自
  • 根据用户的区域设置和偏好设置日期和时间的格式(以秒为单位)

    我试图根据用户的设置获取格式化的日期 年 月 日 和时间 小时 分钟 秒 字符串 This https groups google com forum topic android developers I35vKNWqLdQAndroid