Questions tagged «date-format»

17
您如何将“模糊日期”存储到数据库中?
这是我遇到过几次的问题。假设您有一条要存储到数据库表中的记录。该表具有一个名为“ date_created”的DateTime列。这项特别的记录创建于很久以前,您不确定确切的日期,但知道年份和月份。您只知道年份的其他记录。您知道日,月和年的其他记录。 您不能使用DateTime字段,因为“ 1978年5月”不是有效的日期。如果将其分成多列,则会失去查询能力。有没有其他人遇到过这个问题,如果是这样,您是如何处理的? 为了阐明我正在构建的系统,它是一个跟踪档案的系统。一些内容是很久以前制作的,我们所知道的只是“ 1978年5月”。我可以将其存储为1978年5月1日,但是只能以某种方式表示该日期仅对月份准确。这样,几年后,当我检索该存档时,当日期不匹配时,我不会感到困惑。 对我而言,将“ 1978年5月的未知日期”与“ 1978年5月1日”区分开是很重要的。另外,我也不想将未知数存储为0,例如“ 1978年5月0日”,因为大多数数据库系统都会将其作为无效的日期值来拒绝。

14
是否有任何技术原因导致在编程中默认日期格式为YYYYMMDD而不是其他格式?
有什么工程上的原因为什么会这样?在RDBMS的情况下,我想知道它与性能有关,因为“ YEAR”比“ MONTH”更具体,例如:您只有2000年,而每年都有“ January”,这样可以更轻松,更快捷地按年份过滤/排序某些内容,这就是为什么年份第一的原因。 但是我不知道这真的有道理吗?有什么理由吗?


12
号码本地化是否不必要?
我刚刚阅读了此页面http://weblogs.asp.net/scottgu/archive/2010/06/10/jquery-globalization-plugin-from-microsoft.aspx 他们所做的一件事是将阿拉伯日期转换为阿拉伯日历。我想知道这样做是否是个好主意。对于用户而言,它实际上是否会令人讨厌/困惑(即使用户是阿拉伯人)。 另外,我的第二个问题是,对于某些文化(例如德语),我们真的需要将33,899.99更改为33.899,99吗?我的意思是这样做没有什么害处,因为该库已经为我们做到了,但这实际上不会给用户带来更多混乱(即使他是德国人,等等)。 我敢肯定,这些人来自什么文化,如果我给您一个数字33,899.99,您将不可能正确地猜对吗?(除非我的网站/应用程序是您一生中使用过的第一个网站/应用程序,可以说这是可能的,但可能性很小) 我的意思是“通用”,这是每个人都会看到并知道其含义的格式。它不一定是用黑白之类的东西编写的标准。只要每个人都可以阅读并直接知道文本所代表的含义,那就很普遍了。可以肯定的是,1.234,00绝对不是通用的。我的意思是,我非常确定您可以找到一生中一直在使用计算机但从未遇到过这种数字格式的人。由于大多数网站/应用程序一直在使用1,234.00而不进行任何更改以适应本地化,因此我相信这已成为事实(每个人都会看到并知道它的含义的通用格式)。 至于日期,如果我们写03/01/02,我敢肯定,没有人会知道(马上,马上,没有歧义)今天是几号。但是如果我们将它们写成这样,没有人能弄错2003年1月2日,2003年2月1日,2001年2月3日不是吗? 顺便说一句,这个问题是针对本地化的,不要告诉我“嘿,不是每个人都懂英语!”之类的东西。因为那是国际化的问题(这超出了本主题)。让我们坚持关于本地化的讨论。

4
关于我的数据库日期数据类型讨论:有效吗?值得吗?还有其他人感觉到吗?
我花了很多时间在SO上回答SQL问题。我经常遇到这样的问题: SELECT * FROM person WHERE birthdate BETWEEN '01/01/2017' AND '01/03/2017' SELECT * FROM person WHERE birthdate BETWEEN '2017-01-01' AND '2017-03-01' SELECT * FROM person WHERE birthdate BETWEEN 'some string' AND 'other string' 即要么依赖给定参数从字符串到日期的隐式转换(错误),要么依赖数据库将x百万个数据库行值转换为字符串并进行字符串比较(更糟糕) 我偶尔会发表评论,尤其是如果这是一个非常有名的用户,他们编写了一个明智的答案,但是我认为,他们的数据类型确实应该少一些草率/字符串式输入 注释通常采用以下形式:如果他们使用to_date(Oracle),str_to_date(MySQL),convert(SQLSERVER)或类似的机制将字符串显式转换为日期,可能会更好: --oracle SELECT * FROM person WHERE birthdate BETWEEN TO_DATE('20170101', 'YYYYMMDD') AND TO_DATE('20170301', 'YYYYMMDD') --mysql …

7
“时间结束”是否有常数?
对于某些系统,时间值9999-12-31用作计算机可以计算的时间的“结束时间”。但是,如果改变了怎么办?将此时间定义为内置变量会更好吗? 在C和其他编程语言中,通常使用诸如MAX_INT或类似的变量来获取整数可能具有的最大值。为什么没有类似的函数MAX_TIME将变量设置为“时间结束”,对于许多系统而言,该时间通常为9999-12-31。为了避免硬编码到错误的年份(9999)的问题,这些系统是否可以为“时间结束”引入变量? **真实示例** End of validity date: 31/12/9999.(这样列出了正式文档)博客作者希望编写一个始终位于最上方的页面,即欢迎页面。因此,它有一个尽可能远的将来的日期: 3000?是的,您面临的欢迎页面发布于3000年1月1日。因此,该页面将永远保留在博客的顶部=)它实际上发布于2007年8月31日。


1
ISO-8601中的“ kk”和“ HH” +1有什么区别?
在ISO-8601中,有多种小时格式,其中一种是1-24小时的“ kk”。 这样做的目的是什么?有没有抵消时间的国家?是用于军事用途吗? 在维基百科的文章并没有明确HH和KK之间的确切性质。我关注的主要来源是SimpleDataFormatter中格式的行为。 编辑:我指的是来自SimpleDateFormat的直接部分是这样的: H小时(0-23)时数0 k小时(1-24)时数24 在使用中... HH:mm:ss // 00:00:00 kk:mm:ss // 01:00:00

3
我应该在JAX-RS @PathParam中使用Date类型吗?
这就是我正在考虑使用Jersey在JEE Glassfish服务器上执行的操作。 @GET @Path("/{name}/{date}") public String getMessages(@PathParam("name") String name, @PathParam("date") Date date) 我喜欢能够告诉使用RESTful Web服务的人们“这里的日期是Java中与Date类一起使用的任何东西”的想法。从他们可以仅查看Date规范的角度来看,这非常简单,并且他们已经有了可以测试的工作模型。 我担心的问题是,当执行此操作时,当Date()不喜欢其在构造函​​数中获得的内容时,JAX-RS并不是很好。由于Date()如果无法解析给出的内容,则会引发错误(例如,如果您将字符串“ today”(而不是实际日期)传递给它),那么JEE服务器将返回404错误。 这是一个好习惯吗?有我没有想到的更好的方法吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.