gpt4 book ai didi

android - DatePicker 将日期格式化为系统语言环境

转载 作者:行者123 更新时间:2023-11-30 02:47:16 26 4
gpt4 key购买 nike

我正在尝试根据系统区域设置设置Date 的格式。我知道我可以使用 DateFormat,但我似乎无法正确使用它!我也试过 SimpleDateFormat 但它不尊重语言环境,最重要的是它已被弃用!

下面是我当前的代码,DatePickerDialogEditText 获得焦点时显示。问题是由于 DateFormat 返回 null 而发生的 NullPointerException!

我做错了什么?谁能帮帮我?

public void onFocusChange(View v, boolean hasFocus) {

if (v == txtDate) {
if (hasFocus == true) {

// Process to get Current Date
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);

// Launch Date Picker Dialog
DatePickerDialog dpd = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {

@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// Display Selected date in edit text
String selectedDate = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date date = null;
try {
date = sdf.parse(selectedDate);
} catch (ParseException e) {
// handle exception here !
}

java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(activityname.this);
String s = dateFormat.format(date);
txtDate.setText(s);
}
}, mYear, mMonth, mDay);
dpd.show();
}
}
}

最佳答案

您可以只使用 DateFormat 根据当前区域设置格式化 Date:

Date date = new Date();
DateFormat format = DateFormat.getDateInstance();
String formatted = format.format(date);

根据您使用的 DateFormat 实例,Date 以不同的方式格式化:

  1. DateFormat.getDateInstance():只输出日期
  2. DateFormat.getDateTimeInstance():输出日期和时间
  3. DateFormat.getTimeInstance():只输出时间

但除此之外,您不需要做任何事情。 DateFormat 会处理所有事情并正确格式化 Date

您可以找到有关DateFormat 的更多信息in the documentation .

希望能帮到您,如果您还有其他问题,请随时提出。

关于android - DatePicker 将日期格式化为系统语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24826500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com