gpt4 book ai didi

android - 将日期格式化为mysql格式

转载 作者:行者123 更新时间:2023-11-29 13:33:33 24 4
gpt4 key购买 nike

我正在制作一个带有日期选择器的注册表单。当用户选择日期时,TextView 会更新,以 (MM-dd-YYYY) 格式显示所选日期。当用户单击提交按钮时,它将表单数据传递到 mysql 数据库中。它显然没有插入日期,因为它的格式不正确(yyyy-MM-dd)。我尝试使用 SimpleDateFormat 方法,但无法使其工作。有人可以帮助我了解如何格式化日期吗?

datedob = (TextView) findViewById(R.id.reg_dob);

String dob = datedob.getText().toString();

我的日期选择器代码:

public void populateSetDate(int year, int month, int day) {
datedob = (TextView)findViewById(R.id.reg_dob);
datedob.setText(month + "-" + day + "-" + year);
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar calendar = Calendar.getInstance();
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, yy, mm, dd);
}

public void onDateSet(DatePicker view, int yy, int mm, int dd) {
populateSetDate(yy, mm+1, dd);
}

}

最佳答案

您需要两个 DateFormat 实例:

  • 用于解析 TextView 中的日期字符串。
  • 用于将解析的日期格式化为所需的表示形式。

看起来有点像这样,假设您的 TextView 包含所选日期的 "MM-dd-yyyy" 格式表示:

String dobSource = datedob.getText().toString();
Date dobDate = new SimpleDateFormat("MM-dd-yyyy").parse(dobSource);
String dobTarget = new SimpleDateFormat("yyyy-MM-dd").format(dobDate);

您可以通过跟踪 DateCalendar 引用来避免从 TextView 转换日期字符串, >onDateSet(...) 被命中。然后,该实例将有效地成为支持 TextView 的数据模型以及最终插入数据库的值。

话虽如此,我个人更喜欢以最基本的表示形式存储/保留日期:作为 long 值。这些值通常更容易使用(因为您可以避免任何解析)并且通常在不同平台之间可以更好地互换。最后,存储日期应该与实际数据有关 - 任何特定的表示/格式只会使事情变得更加复杂。

关于android - 将日期格式化为mysql格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19084953/

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