我正在使用带有jquery日期选择器的struts2. x。
我想以dd/mm/yyyy的格式显示。但是从数据库中获取它的时候就像yyyy-mm-dd.Then我将其转换为所需的格式,但类型是String。所以接下来我将其转换为Date类型。但格式已更改。
Date getRiskCommDate()
{
String fString = null;
System.out.println("Coming Date from DB"+riskCommDate);
if(riskCommDate!=null)
{
SimpleDateFormat format = new SimpleDateFormat();
format.applyPattern("dd/MM/yyyy");
fString = format.format(riskCommDate);
}
System.out.println("Formated Date in String Form "+fString);
Date d = new Date(fString);
System.out.println("Formated Date in Date form Date "+d);
return d;
}
输出:
来自DB的日期2012-07-04
以字符串形式形成日期04/07/2012
以日期形式形成日期日期星期六Apr 07 00:00:00 IST 2012
任何想法都受到高度赞赏。
与早期Java捆绑在一起的旧的麻烦的日期时间库已经被内置于Java 8和更高版本中的java.time框架所取代。对于Java 6
java。时间类包括LocalDate
,用于不带时间和时区的仅日期值。
希望JDBC驱动程序能够更新为直接处理java.time类型。在此之前,请使用 java.sql 类型将数据移入/移出html" target="_blank">数据库。旧的java.sql类有新的...
和 valueOf
方法,用于与 java.time 进行转换。我们感兴趣的是java.sql.Date
。
LocalDate localDate = myJavaSqlDate.toLocalDate();
您可以转到另一个方向,以提交到数据库。
java.sql.Date myJavaSqlDate = java.sql.Date.valueOf( localDate );
讨论的日期类(java.util.Date、java.sql.Date、java.time.LocalDate)都没有任何“格式”。只有它们值的文本表示形式有格式。如果您需要一个String,这些类可以为您生成一个String对象。但不要将该String对象与日期时间对象混淆,因为它们是完全独立的。
LocalDate
上的toString
方法使用标准ISO 8601格式,例如2012-07-04
(意思是2012年7月4日)。
String outputIso8601 = localDate.toString();
对于其他格式,请使用DateTimeFormatter
。关于堆栈溢出的许多其他问题和答案还有更多讨论。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "dd/MM/yyyy" );
String output = localDate.format( formatter ); // Generates a textual representation of the object’s date-only value.
更好的是,让我们使用java。时间为你定位。
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDate( FormatStyle.SHORT );
formatter = formatter.withLocale( Locale.CANADA_FRENCH ); // or Locale.US, and so on.
String output = localDate.format( formatter );
java.time框架内置在Java8及更高版本中。这些类取代了麻烦的旧的遗留日期时间类,例如java.util.Date
,Calendar
,
现在处于维护模式的Joda-Time项目建议迁移到java.time类。
要了解更多信息,请参阅Oracle教程。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。
您可以直接与数据库交换java.time对象。使用符合JDBC 4.2或更高版本的JDBC驱动程序。不需要字符串,不需要< code>java.sql.*类。
在哪里可以获得java。上课时间到了吗?
ThreeTen-Extra项目用额外的类扩展了java.time。这个项目是java.time未来可能增加的内容的试验场。您可能会在这里找到一些有用的类,如< code>Interval 、< code>YearWeek 、< code>YearQuarter等等。
Date打印基于区域设置的格式。它不会“记住”你给它的格式,你想要它构造。只有字符串有特定的格式,所以如果你需要,就把它作为字符串保存。
java.util.Date
类没有任何用于保存格式的属性。
要以自定义格式显示日期
的值,请调用SimpleDataFormat
。
当你这样做时:
System.out.println(dateInstance)
…您只需在日期
调用toString()
。该方法以<code>字符串</code>版本的固定格式返回日期。
根据这些评论
如果您希望使用带有日期实例的自定义格式,则可以创建自定义类包装日期实例
class MyDate{
private Date date;
//provide appropriate accessor
//override toString() method to support required output
}
或扩展
日期
class MyDate extends Date{
//override toString() method to support required output
@Override
public String toString(){
//convert `this` to String with required format with the help of `SimpleDateFormat`
}
}
我试图通过获取日期然后填充表来获取存储在数据库中的数据。 这里的问题是,它给了我一个错误异常: Java语言lang.ClassCastException:类java。无法将lang.字符串转换为类java。util。日期(java.lang.String和java.util.Date位于加载程序“bootstrap”的模块java.base中) 我知道怎么了,因为 因此,有没有办法将给定值更改为
问题内容: 我在网络上阅读了更多问题,但还没有找到解决方案。 我有一个完全像这种格式的 字符串, 例如“ 14/05/1994”。 我需要以 相同的格式* 将其隐藏到 java.util.Date 中。 * 我试过了: 但结果是:1994年5月14日星期六星期六00:00:00 结果是:1994年5月14日不是字符串,而是java.util.Date? 问题答案: 一个不 具有 的格式。这只是个约
问题内容: 我有多个具有生日的联系人,并且所有联系人都已与移动设备同步。现在的问题是所有联系人的生日格式都不同,我想以“ dd-MM- yyyy”之类的特定格式显示所有生日日期。 因此,例如,一个同步联系人的生日为“ 1990-02-07”或“ 1988-06-15T22:00:00.000Z”或“ 12-02-1990”等,则应显示所有这些日期以特定格式“ dd-MM-yyyy”。 那我该如何解
我有多个联系人的出生日期,并且都与移动设备同步。现在的问题是所有联系人都有不同的生日格式,我想以特定格式显示所有生日日期,例如“dd-MM-yyyy”。 例如,一个同步联系人的生日是“1990-02-07”或“1988-06-15T22:00:00.000Z”或“12-02-1990”等...那么所有这些日期都应该以特定的格式“dd-MM-yyyy”显示。 那么我该如何解决这个问题呢? 如有任何建
问题内容: 我有一个像这样的字符串。我想将其转换为相同格式的日期。我尝试过这样的事情: 但是输出是不同的格式,例如。我怎样才能使其按需工作。谁能帮我。我知道这可能是重复的,但我没有发现任何运气。 问题答案: 从Java APIhttps://docs.oracle.com/javase/8/docs/api/java/util/Date.html Date类表示特定的时间瞬间,精度为毫秒。 试着去
问题内容: 我正在尝试从转换日期。我已经使用了mktime()函数和其他函数,但是我似乎无法使其工作。我已经成功地将原始日期用作定界符,但更改格式并将其与交换时没有成功。 任何帮助将不胜感激。 问题答案: 通过查看各个组成部分之间的分隔符,可以消除或格式中的日期的歧义:如果该分隔符是斜杠(),则假定为American ;否则,为0。反之,如果分隔符是破折号()或点(),则采用欧洲格式。 使用默认的