有许多java类处理时间(日期,calander..etc),还有更多的在线参考和教程,这使得它非常混乱,我不知道何时使用哪个类。
任何人都可以直截了当地声明如下:
非常感谢!
答案 0 :(得分:0)
<强> ANS1 强>
您可以使用。
Date date = new Date();
在SQL中,您可以将日期字段标记为自动更新为当前时间。
<强> ANS2 强>
SimpleDateFormat允许各种日期格式。示例用法是:
Date d = new Date(secondsSunceEpoch);
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yy");
String time = df.format(d);
<强> ANS3 强>
使用SimpleDateFormat中的parse方法可以使用任何字符串。
答案 1 :(得分:0)
try {
DateFormat todaysDateFormat = new SimpleDateFormat("dd/mm/yy");
Date date = new Date();
//2. datestring hold your today's object in DD/MM/YY format
String datestring = todaysDateFormat.format(date);
System.out.println("datestring "+datestring);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yy");
java.util.Date parsedDate;
parsedDate = dateFormat.parse(datestring);
Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
//1. Create an instance of a timestamp to keep track of transactions on a database
System.out.println(timestamp); // Use this time stamp as today's date foramt
// 3.Create an object that holds ANY given date in DD/MM/YY format
SimpleDateFormat dateFormat3 = new SimpleDateFormat("dd/mm/yy");
java.util.Date parsedDate3;
parsedDate3 = dateFormat.parse("30/12/14"); // any given date
String anyDatestring = todaysDateFormat.format(date);
// it will hold any date string
}catch (ParseException e) {
e.printStackTrace();
}
答案 2 :(得分:0)
其他答案是正确但过时的。他们使用麻烦的旧遗产类。而是使用java.time类。
创建时间戳实例以跟踪数据库上的事务
Instant
类代表UTC中时间轴上的一个时刻,分辨率为nanoseconds。
在Java 8中,当前时刻以毫秒分辨率捕获。在Java 9中,分辨率高达纳秒。在两个版本的Java中,Instant
类都能够保持纳秒值。
Instant now = Instant.now();
在JDBC 4.2及更高版本中,通过PreparedStatement::setObject
和ResultSet::getObject
与您的数据库进行交换。如果您的驱动程序无法执行此操作,请转换为java.sql.Timestamp
。
java.sql.Timestamp ts = java.sql.Timestamp.from( instant );
走向另一个方向。
Instant instant = ts.toInstant();
创建一个以DD / MM / YY格式(或任何类似的)格式保存今天日期的对象
LocalDate
LocalDate
类表示没有时间且没有时区的仅限日期的值。
时区对于确定日期至关重要。对于任何给定的时刻,日期在全球范围内因地区而异。例如,法国巴黎午夜过后几分钟,在魁北克蒙特利尔的“昨天”仍然是新的一天。
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );
要生成字符串,您可以指定格式设置模式,或者只允许DateTimeFormatter
本地化。 Locale
确定(a)用于翻译的人类语言,以及(b)用于决定大写,缩写和标点符号等问题的文化规范。
DateTimeFormatter f = DateTimeFormatter.ofLocalizeDate( FormatStyle.SHORT ).withLocale( Locale.UK );
String output = today.format( f );
创建一个对象,该对象包含DD / MM / YY格式(或任何类似的)
的任何给定日期
不要将日期时间对象与该日期时间值的字符串表示形式混淆。该对象可以解析或生成这样的字符串,但它与字符串是分开的和不同的。
所以我们已经看到了上面的解决方案:LocalDate
对象保存了仅日期值。当需要向用户呈现时,生成一个String来表示值。
顺便说一句,调用toString
会获得标准ISO 8601格式的字符串YYYY-MM-DD。
String output = localDate.toString();
java.time类遵循不可变对象模式。因此,您不要修改现有对象以更改其部分值。而是使用基于原始对象的部分值创建一个新对象。
LocalDate tomorrow = today.plusDays( 1 );