Tag: date

处理Web应用程序中的时区

在我们的网络应用程序中,我们需要显示和输入不同时区的不同国家/地区的日期时间信息。 现在,我们正在为每个国家/地区维护单独的Web服务器和单独的数据库(oracle 11g)。 我们计划将所有门户网站合并为一个数据库(oracle 11g)。 此门户应捕获/显示用户本地时区的日期和时间。 到目前为止,我已经搜索了这个,我得到了以下建议。 1)将Web服务器和数据库服务器的时区设置为UTC,同时将获取数据(数据和时间)转换为用户本地时区。 如果您建议采用这种方法,请澄清以下具体问题。 大多数时候我们只捕捉日期,是否需要始终捕捉日期和时间以及时区? 同时存储我们需要在javascript / java / oracle中将用户本地时区转换为UTC的日期和时间? 在获取我们需要将UTC转换为用户的日期和时间时 本地时区查询本身/ java / java脚本? 很多地方我们有报告显示基于日期列,如 今天/当前月/日期范围。我们可以处理这个(输入 – 用户本地时区 – UTC中的数据库)? 我们必须将哪种数据类型用于日期字段(日期/时间戳/时间戳与时区/时间戳与本地时区)? 2)以用户本地时区和UTC捕获日期和时间。 存储为单独的列,用户本地时区将用于显示目的,UTC将用于业务逻辑。 如果您建议采用这种方法,请澄清以下具体问题。 存储用户本地时区和UTC的常见做法是什么? 我需要检查条件,同时根据日期列显示报告,例如今天/当前月/日期范围? 我们必须使用哪种数据类型作为日期列 (日期/时间戳/时间戳,带时区/时间戳和本地时间 区)? 提前致谢

您如何在您的Java模型中表示出生日期?

等等,不要急于回答“java.util.Date”,请考虑以下场景。 具有2个字段的Person对象:“birthday”和“nextMeeting”都是java.util.Date。 现在生日存储在数据库中作为日期类型列(没有时间),例如。 01-10-1979,和next作为日期时间类型的例子。 01-10-2010 20:00:00 你从db中取出它,“生日”将由JDBC自动设置为午夜。 现在,您需要使用RMI或任何技术将此对象发送到其他JVM。 另一方面,JVM与原始JVM的时区为-1h。 这是问题开始的地方。 nextMeeting成为01-10-2010 19:00:00,从用户的角度来看,这绝对是精细和正确的…… 但是生日变成30-09-1979 23:00:00,它将在9月30日呈现给用户,这实际上不是我们想要的,因为显然生日是静态的,不依赖于时区。 因此db中的列类型选择正确(日期)。 这种类型的列通常表示为java.util.Date。 但在我们的例子中,使用java类型是错误的。 那你怎么代表一个生日? 考虑一下你需要在UI上操作这个对象,就像在datepicker组件中一样……

Java String to Date对象格式为“yyyy-mm-dd HH:mm:ss”

我需要将包含日期的String转换为日期对象。 字符串的格式为“yyyy-mm-dd HH:mm:ss.SSSSSS”,我想在日期对象中使用相同的格式。 例如,我有一个字符串“2012-07-10 14:58:00.000000”,我需要生成的日期对象具有相同的格式。 我已经尝试了以下方法,但结果并不像预期的那样。 java.util.Date temp = new SimpleDateFormat(“yyyy-mm-dd HH:mm:ss.SSSSSS”).parse(“2012-07-10 14:58:00.000000”); DateFormat dateFormat = new SimpleDateFormat(“yyyy-mm-dd HH:mm:ss”); Date thisDate = dateFormat.parse(“2012-07-10 14:58:00.000000”); 结果是“Tue Jan 10 14:58:00 EST 2012”。 请让我知道我哪里出错了。 谢谢,Yeshwanth Kota

如何在Oracle中使用JPA存储日期和时间?

我正在使用WebSphere 7(Java EE 5)和OpenJPA 1.2.1。 我有一个带有“ modifiedTimestamp ”属性的JPA对象,如下所示: @Entity public class Widget { /* … */ private java.sql.Date modifiedTimestamp; /* … */ } Oracle数据库中的相关字段的类型为DATE 。 我这样设定日期…… myWidget.setModifiedTimestamp(new java.sql.Data(System.currentTimeMillis()); …并且它被存储,但是当我读回它时,时间没有被存储,它允许返回到24:00。 这是JPA的东西,还是Oracle的东西? 任何建议都非常感谢! 谢谢

Java – 日期保存为前一天

我在数据库上保存日期时遇到了一种非常奇怪的行为。 在我的(Linux centOS 6.2)服务器上,我使用glassfish应用服务器(3.1.1 – build 12)和Java(1.7.0_09),该应用程序是用Java + GWT开发的,它使用PostgreSQL服务器(9.2.1)。 在应用程序内部,有几个日期字段保存在数据库中。 日期字段使用datepicker(http://code.google.com/p/gwt-datepicker,r30)。 db关系的date属性是日期类型(不是时间戳)。 有些日期在前一天保存在数据库中。 问题只发生在间隔之间的日期,例如在19.03.1968和1910年10月27日之间,这让我想到了某种夏季时间问题。 但是,由于1969年没有发生这种情况,我无法很好地孤立这个问题。 我正在尝试找到问题发生的其他日期间隔。 例如,如果我在应用程序中选择19.05.1968,则在保存到数据库后,日期将保存为18.05.1968。 奇怪的是,我在另一台服务器上有相同应用程序的另一个等级,并且在相同日期它们被正确保存。 这让我觉得问题可能依赖于: 玻璃鱼配置; java(java.util.Date implementation?); 我缺少某种服务器配置 我尝试将服务器的每个配置设置为欧洲/罗马(我的时区),但没有。 任何想法? 我怎么能解决或调查这个问题? 更新: 1968年是闰年。 这个问题也发生在1972年,这也是闰年。 总结: 在夏季时间间隔期间,闰年发生了“日期保存前一天”问题。 创建日期对象的代码部分是: Date d = dateField.getSelectedDate(); if (d != null) { txtVal = DateTimeFormat.getFormat(“dd/MM/yyyy”).format(d); } 其中dateField声明为: transient private DatePicker dateField; 包是org.zenika.widget.client.datePicker.DatePicker (之前提到的gwt- org.zenika.widget.client.datePicker.DatePicker -r30),而DateTimeFormat是指com.google.gwt.i18n.shared.DateTimeFormat 接受答案后更新: […]

通过Java JDBC使用iBATIS的Oracle SQL DATE转换问题

我目前正在使用Java中的iBATIS来解决Oracle SQL DATE转换问题。 我使用的是Oracle JDBC瘦驱动程序ojdbc14版本10.2.0.4.0。 iBATIS版本2.3.2。 Java 1.6.0_10-rc2-b32。 问题围绕这个SQL片段返回的DATE类型列: SELECT * FROM TABLE(pk_invoice_qry.get_contract_rate(?,?,?,?,?,?,?,?,?,?)) order by from_date 包过程调用返回一个包含在TABLE中的ref游标,然后很容易读取结果集,好像是对表的select查询。 在PL / SQL Developer中,返回的SQL DATE类型的FROM_DATE列之一具有一天中的时间精度: Tue Dec 16 23:59:00 PST 2008 但是当我通过iBATIS和JDBC访问它时,该值仅保留精确到白天: Tue Dec 16 12:00:00 AM PST 2008 这样显示时更清晰: 本来应该: 1229500740000 milliseconds since epoch Tuesday, December 16, 2008 11:59:00 PM PST 但得到这个: 1229414400000 milliseconds since epoch Tuesday, […]

如何在Java中将Joda LocalDate转换为String?

我得到了答案:这很简单。 DateTimeFormatter fmt = DateTimeFormat.forPattern(“MM/dd/yyyy”); String formattedDate = jodeLocalDateObj.toString( fmt );

SimpleDateFormat的结果不正确

我想将Tue Jun 01 00:00:00 IST 112转换为01-JUN-2012 我用了 Calendar calendar = new GregorianCalendar(year, 6, Calendar.DAY_OF_MONTH); Date maxDate=new Date(); maxDate=calendar.getTime(); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); SimpleDateFormat s=new SimpleDateFormat(“dd-mmm-yyyy”); s.format(maxDate); 但我得到30-000-0112

如何将日期值“2017年5月26日”转换为“2017/05/25”?

是否有任何java库可用于解析语言特定的序数指示符/后缀? 我有如下日期值: 26th May 2017 。 我想将此转换为26/05/2017 。 谁能指导我怎么办?

Java Unparseable Date Exception

我试图用正斜杠替换连字符,但它导致一个unparseable date exception String test = “2014-04-01 05:00:00”; Date date = new SimpleDateFormat(“YYYY/MM/dd hh:mm:ss”, Locale.ENGLISH).parse(test); System.out.println(date); 我有转换的必要值,有人能告诉我为什么它会返回错误吗? 另外,我想在格式的末尾附加一个am/pm marker ,这可能吗?