Android:如何将DatePicker视图date格式从MM / dd / yyyy更改为dd / MM / yyyy?

我一直在试图得到这个问题的答案很长一段时间。 我也看了下面的链接: Android – DatePicker Widget格式 。 在我的手机/模拟器(v 2.3.3)上,DatePicker小部件和对话框都不采用在设置(设置 – >date和时间 – >selectdate格式)中指定的date格式。 他们总是格式为“MM / dd / yyyy”。 语言环境设置为英语英国。

当我读取设置时,我得到“d / MM / yyyy”:

Settings.System.getString(getContentResolver(), Settings.System.DATE_FORMAT);

有没有人有关于如何更改DatePicker视图中的date格式的想法?

Solutions Collecting From Web of "Android:如何将DatePicker视图date格式从MM / dd / yyyy更改为dd / MM / yyyy?"

要重写DatePicker格式,最好的办法是重写一个构造函数,对原始代码进行轻微的编辑。 你可以在代码中编辑ViewGroup给你,但我会认真考虑不这样做。

  1. 创build类LocalizedDatePicker
  2. 覆盖公共DatePicker(上下文上下文,AttributeSet attrs,int defStyle) http://developer.android.com/reference/android/widget/DatePicker.html#DatePicker (android.content.Context,android.util.AttributeSet,int)
  3. 复制原始DatePicker构造函数中的代码(在进行一些testing之后,您可能需要select不同的分支,我已经链接了该头)
  4. 重写调用reorderSpinners()来移除该调用的方法。
  5. replaceline inflater.inflate(R.layout.date_picker, this, true);inflater.inflate(my.package.R.layout.localized_date_picker, this, true);
  6. 将原始的date_picker.xml布局复制到您的本地资源localized_date_picker.xml
  7. 编辑文件以获得所需顺序,因为您正在编辑该文件,请尊重其他位置的本地化,并在全局布局文件夹中保留原始文件的副本,并将localized_date_picker.xml放在您所在区域的特定文件夹中。 由于系统的布局是“月份日”,所以其他地方的人可能会预期该订单。

这个设置非常具体。 它只适用于以“短格式”显示的datedate。 只要您使用其他任何东西(在这种情况下,DatePicker似乎正在使用“中”),那么这些设置将被忽略,地区的默认格式将接pipe。

我可以确认,如果您更改手机的语言(实际上是语言环境),则dateselect器中元素的顺序也会发生变化。 我猜这意味着我不同意Dan S的说法:“系统不使用任何机制来定位DatePicker”。 如果你看代码,你可以看到(至less从2.1开始),有一个reorderPickers()方法来完成这个工作。

英语: 英语

法国: 法国