【问题标题】:How do I store a date value from DatePicker into a formatted String value?如何将 DatePicker 中的日期值存储到格式化的字符串值中?
【发布时间】:2015-05-20 18:50:18
【问题描述】:

在注册过程中,我正在尝试实现一个代码,它将日期值存储到以下格式的字符串值中:“dd-mm-yyyy”。

所以,在 onCreate() 方法部分,我声明了一个 DatePicker 变量,如下所示:

DatePicker dob = (DatePicker) findViewById(R.id.dob);

在 onClick() 方法部分,我写了一个代码来将这个 DatePicker 值转换为字符串。

String entered_dob = dob.toString();

但后来当我打开数据库时,我发现这只会返回一个看起来很无意义的值。我应该如何实施才能得到我想要的?

【问题讨论】:

  • ricoangeloni 的任何答案都可以帮助您解决问题。记得标记正确答案,甚至回答你自己的问题

标签: android datepicker


【解决方案1】:

如果您想将日期存储为字符串(这不是一个好习惯)

DatePicker datePicker ;
SimpleDateFormat dateFormatter ;
Date d ;
String entered_dob ;

datePicker = (DatePicker) findViewById(R.id.dob);

int day = datePicker.getDayOfMonth();
int month = datePicker.getMonth() + 1;
int year = datePicker.getYear()

d = new Date(year, month, day);
dateFormatter = new SimpleDateFormat("MM-dd-yyyy");
entered_dob = dateFormatter.format(d);

如果你想得到时间戳,你可以这样做

Calendar calendar = new GregorianCalendar(year, month, day);
long enterded_dob_ts = calendar.getTimeInMillis();

【讨论】:

  • 谢谢!但为什么您的第一个建议不是一个好的做法?
  • @ricoangeloni 时间戳可用于直接比较两个日期(因为它们是一个长数字),另一方面,以特定格式存储日期使其难以理解和操作。 “01-02-2013”​​是 1 月 2 日还是 2 月 1 日?
【解决方案2】:

我建议存储时间戳。

使用Calendar 创建此值。这个你可以很容易地存储很长(如果你真的想要这个,也可以是字符串)

结帐this Example

【讨论】:

  • 感谢您的建议!但是你能给我举个例子吗?我是编程的新手..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
  • 2016-05-30
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
  • 2013-08-15
相关资源
最近更新 更多