gpt4 book ai didi

java - 如何格式化 mySQL 日期以在 android 的日期选择器中显示?

转载 作者:行者123 更新时间:2023-11-29 05:40:12 26 4
gpt4 key购买 nike

当我从 mySQL 获取日期时,其格式为 2013-06-05,但是当我尝试在日期选择器对话框中显示它时,我得到的是 1933 年,月份和日期也不正确。 .

变量 Setdate 将是字符串 "2013-06-05"

        public void onClick(View v) {
// TODO Auto-generated method stub
String Setdate = dateButton.getText().toString();
SimpleDateFormat sfd = new SimpleDateFormat(Setdate);
Calendar myCalendar = sfd.getCalendar();
new DatePickerDialog(context, date, myCalendar.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}

有人知道如何解决这个问题吗?

谢谢

最佳答案

SimpleDateFormat 的构造函数接受一个模式字符串,而不是实际的日期字符串。模式字符串描述了在解析日期字符串或将日期转换为字符串表示时应使用的格式

试试这个:

String format = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(format);
String dateString = dateButton.getText().toString();
Date date = sdf.parse(dateString);
Calendar myCalendar = Calendar.getInstance();
myCalendar.setTime(date);
new DatePickerDialog(context, date, myCalendar.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH)).show();

另一个想法:如果您可以控制日期的存储方式,或许可以考虑将它们存储为表示自 Epoch 以来的毫秒数的长整型,这正是 Date 和 Calendar 类在内部使用的方式。它通常可以使代码更简单,例如:

long time = ...
Calendar myCalendar = Calendar.newInstance();
myCalendar.setTimeInMillis(time);
new DatePickerDialog(context, date, myCalendar.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH)).show();

关于java - 如何格式化 mySQL 日期以在 android 的日期选择器中显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17905018/

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