【问题标题】:How to convert String to Date which can be store in database?如何将字符串转换为可以存储在数据库中的日期?
【发布时间】:2015-03-12 13:00:16
【问题描述】:

我使用 DataPicker 并在方法 onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) 中得到 year 、 monthOfYear 和 dayOfMonth,如何将这 3 个 int 合并到一个可以用来存储在数据库中的 Date 中?

【问题讨论】:

  • 您在发布问题之前是否在互联网上进行了搜索?有很多类似的问题
  • 如果你的输出是 int 那么你可以使用 String.value Of(your int values in your format);

标签: android android-sqlite android-datepicker android-date


【解决方案1】:

你可以这样做

Calendar myCalendar = Calendar.getInstance();

DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
    {
        myCalendar.set(Calendar.YEAR, year);
        myCalendar.set(Calendar.MONTH, monthOfYear);
        myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
        updateLabel();
    }
};

private void updateLabel() 
{
    String myFormat = "MM/dd/yy"; //In which format you need put here
    SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);

    textview.setText(sdf.format(myCalendar.getTime()));
}

希望对你有帮助

【讨论】:

  • 好的,它可以工作,但是如果现在我想使用我存储在数据库中的这个日期,例如当存储的日期等于设备中的当前日期时执行一些代码?
  • @Slaiv206 那么你必须比较两个日期。获取系统日期(设备日期)并从数据库中获取您的日期并比较它们并做您想做的任何事情......
【解决方案2】:

实例化一个日历:

Calendar cal = Calendar.getInstance();

使用它的方法设置日期:

cal.set(int year, int month, int day);

然后将其存储为时间戳整数

cal.getTimeInMillis()

或作为字符串

cal.toString()

【讨论】:

    【解决方案3】:

    您可以使用SimpleDateFormatter 将其转换为dd/mm/yyyy 格式的String

    然后,当您想要检索它时,使用一些String 操作来检索每个单独的组件并构造一个Date 对象。

    【讨论】:

      【解决方案4】:

      试试这个:

      private SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
      
      private void datePicker(Date initialDate) {
          Calendar cal = Calendar.getInstance();
          if (initialDate != null) {
              cal.setTime(initialDate);
          }
          new DatePickerDialog(getContext(), new DatePickerDialog.OnDateSetListener() {
              public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                  String data = String.format("%02d/%02d/%04d", dayOfMonth, monthOfYear + 1, year);
                  try {
                      Date newDate = format.parse(data);
                      saveMyDate(newDate);
                  } catch (Exception ex) {
                      ex.printStackTrace();
                  }
              }
          }, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)).show();
      }
      
      private void saveMyDate(Date newDate) {
          // do something
      }
      

      【讨论】:

        【解决方案5】:

        使用日历设置年、月、日

         GregorianCalendar cal = new GregorianCalendar();
         cal.set(GregorianCalendar.YEAR, year);
         cal.set(GregorianCalendar.MONTH, monthOfYear);
         cal.set(GregorianCalendar.DAY_OF_MONTH, dayOfMonth);
        

        并存储为毫秒

        cal.getTimeInMillis();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-12-01
          • 1970-01-01
          • 2021-01-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-02
          • 1970-01-01
          相关资源
          最近更新 更多