【问题标题】:Format Date into mysql format将日期格式化为mysql格式
【发布时间】:2013-09-30 00:44:30
【问题描述】:

我正在制作一个带有日期选择器的注册表单。当用户选择日期时,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);
    }

}

【问题讨论】:

    标签: android mysql json datepicker textview


    【解决方案1】:

    您需要两个 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 值。这样的值通常更容易使用(因为您避免任何解析)并且通常可以更好地在各种平台之间互换。最后,存储日期应该是关于实际数据的全部内容 - 任何特定的表示/格式只会使事情进一步复杂化。

    【讨论】:

    • 所以您是说从 onDateSet 方法中提取日期比从 TextView 中提取日期更好?如果是这样,我将如何拉它?
    • 我想我已经在上面的回答中解释了它的要点:创建一个 Calendar 实例,每次通过 onDateSet(...) 输入新值时更新它。然后,您可以将其用作TextView 和最终插入数据库的值的支持数据模型。请注意,这只是我会考虑的方法 - 虽然它不是 only 解决方案。由您决定如何实际实施。
    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    相关资源
    最近更新 更多