gpt4 book ai didi

android - DateFormat 产生错误的年份

转载 作者:行者123 更新时间:2023-12-02 05:48:47 26 4
gpt4 key购买 nike

Date picker

上图是日期选择器,我点击确定后,结果如下图所示。

Text View

代码如下

public class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);

// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}

public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
Date date = new Date(year, month, day);
Fragment fragment = getActivity().getFragmentManager().findFragmentByTag(ConvocationAddDialogFragment.class.getName());
TextView textView = (TextView) fragment.getView().findViewById(R.id.open_registration_date);
textView.setText(DateFormat.getDateInstance().format(date));
}
}

期望值是18 Jan 2016,为什么显示18 Jan 3916?

最佳答案

根据源代码new Date(year, month, day);

public Date(int year, int month, int day) {
GregorianCalendar cal = new GregorianCalendar(false);
cal.set(1900 + year, month, day);
milliseconds = cal.getTimeInMillis();
}

在这里,您的年份 2016 将添加到 1900,结果为 3916。

尝试,

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month);
calendar.set(Calendar.DAY_OF_MONTH, day);
Date date = calendar.getTime();

关于android - DateFormat 产生错误的年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34847697/

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