我如何创建自定义日期?

时间:2011-08-10 22:11:38

标签: java sql datetime date

需要一些帮助!这是一个2部分的问题..

我已经完成了相当多的编程,但我从来没有真正使用过日期,我用谷歌搜索了所有这些但却一无所获。

第1部分:

所以我想说我有一些变量: 公开日期adStartTime

我希望它采用以下格式:yyyy / mm / dd hh:mm:ss 所以我只是做adStartTime =(某些日期格式化程序)+(2011/08/08 08:08:08)*哪些不行?

是什么方法让它成为那样?我一直在收到错误,这样..我更喜欢在Date中做所有事情,而不是使用strings / int ..

第2部分:

一旦我以该格式获得日期,我将需要将其插入数据库,我可以以该格式插入日期吗?或者我需要改变吗?

我需要时间的原因是因为我正在为新公司证券设置自动广告,有时广告会运行一天或半天,所以我需要正确设置计时器。

感谢您的帮助..

2 个答案:

答案 0 :(得分:4)

对于第1部分,请使用java.text.SimpleDateFormat,如下所示:

SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = format.parse(datestring);

如果您的代码看起来像这样,但仍然会出错,请修改您的问题以包含您的实际代码。

对于第2部分,您应该将日期作为日期插入数据库,而不是字符串,因此没有格式。

答案 1 :(得分:1)

1。)对于处理日期,我建议您查看Joda time

允许这种类型的转换。

例如

 public boolean isAfterPayDay(DateTime datetime) {
 if (datetime.getMonthOfYear() == 2) {   // February is month 2!!
   return datetime.getDayOfMonth() > 26;
 }
 return datetime.getDayOfMonth() > 28;
}

2。)为了在DB中存储dateTimes,有几个阵营可以容纳不同的东西

有人说你应该存储一个int并转换。 Joda让事情变得简单。其他人(比如某些oracle DBA)似乎更喜欢Date类型。 Joda也处理这个问题。这里讨论了一些问题Date storage discussion

实际操作方式取决于您的数据库类型和DBA的偏好(如果有的话)

我强烈建议您使用Timezone存储日期时间。