2011-08-10 64 views
0

需要一些帮助!这是一个2部分的问题..我如何创建自定义日期?

我做了一个体面的数量的编程,但从来没有真正与日期,一直谷歌搜索和所有,但没有找到什么。

第1部分:

因此可以说,我有一些变量: 公告日期adStartTime

我希望它是格式为:YYYY/MM/DD HH:MM:SS 所以我只是做adStartTime =(一些日期格式化程序)+(2011/08/08 08:08:08)*哪些不工作

最新的正确方法是这样吗?我不断收到错误,这样.. ID喜欢做的日期,​​而不是使用字符串/ INT一切..

第2部分:

一旦我得到该格式的日期我需要插入到数据库,我可以在该格式中插入日期吗?或者我需要改变它?

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

感谢您的帮助..

回答

4

对于部分1,使用java.text.SimpleDateFormat,像这样:

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

如果你有一些代码看起来像这样的东西,并仍然得到错误,请编辑您问题包括您的实际代码。

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

+0

lols我发现问题后有点想通了,谢谢! 问题:你认为最好从用户那里得到一个日期字符串,然后解析它,或者让用户在日期中输入日期,我担心用户可能会输入错误的格式或产生错误.. – iCodeLikeImDrunk

+0

你在谈论一个网络应用程序?在大多数情况下,我认为使用javascript datepicker比仅仅输入文本好得多,只要它是一个很好的日期选择器。专家用户可能更喜欢简单的文本输入来写入,但有了一个好的日期选择器,应该可以忽略选择器并且只是写一个日期。如果您使用文本输入,最小可用性至少告诉用户需要哪种格式。 –

+0

日期选取器有时间吗?因为我需要准确的年/月/日小时:分:秒 – iCodeLikeImDrunk

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存储日期时间有持有不同的事情

有人说,你应该保存一个int和转换多个阵营。乔达使这一点变得简单。其他人(比如一些oracle DBA)似乎更喜欢日期类型。乔达也是如此。有一些在这里Date storage discussion

问题如何你其实也可以取决于你的数据库类型和DBA的偏好(如果有的话)的讨论

我强烈建议你存储日期时间与时区的存储。

+0

在某些情况下,当需要复杂的操作和日期关系时,Joda时间很不错(因为Date有基于历史设计缺陷的缺点)。另一方面,如果您只需要将日期传递给东西,则大多数东西都需要Java日期,所以更容易遵守它们,而不会增加在项目中竞争日期实现的复杂性。 –

+0

@Rasmus发布的问题似乎吸引了乔达的优势之一。将输出转换为java日期很容易完成,节省的时间非常值得。 – stimpy

+0

是joda的自定义库吗? – iCodeLikeImDrunk

相关问题