Date today = DateUtils.truncate(new Date(), Calendar.DAY_OF_MONTH);
DateFormat df = new SimpleDateFormat("HH:mm:ss");
Date time = df.parse("14:21:16");
Timestamp time = new Timestamp(today.getTime() + time.getTime());
# 3 楼答案
String str = "14:21:16";
DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
Date date = formatter.parse(str);
Timestamp timestamp = new Timestamp(date.getTime());
// Get today's date and time.
Calendar c1 = Calendar.getInstance();
c1.setTime(new Date());
// Get the required time of day, copy year, month, day.
Calendar c2 = Calendar.getInstance();
c2.setTime(java.sql.Time.valueOf("14:21:16"));
c2.set(Calendar.YEAR, c1.get(Calendar.YEAR));
c2.set(Calendar.MONTH, c1.get(Calendar.MONTH));
c2.set(Calendar.DAY_OF_MONTH, c1.get(Calendar.DAY_OF_MONTH));
// Construct required java.sql.Timestamp object.
Timestamp time = new Timestamp(c2.getTimeInMillis());
Let's see what we've done.
System.out.println(time);
final String str = "14:21:16";
final Timestamp timestamp =
Timestamp.valueOf(
new SimpleDateFormat("yyyy-MM-dd ")
.format(new Date()) // get the current date as String
.concat(str) // and append the time
);
System.out.println(timestamp);
# 1 楼答案
有一天(比如说unix时代?)作为一天。当你使用它时,只使用你关心的时间参数,忽略一天
另一个选择是java。sql。时间
http://download.oracle.com/javase/1.4.2/docs/api/java/sql/Time.htm
# 2 楼答案
使用组织。阿帕奇。平民时间。日期:
# 3 楼答案
# 4 楼答案
就我个人而言,我会使用Joda Time将时间解析为
LocalTime
,并将其添加到今天的LocalDate
中以获得LocalDateTime
,然后使用您感兴趣的时区将其转换为Instant
。(或使用LocalTime.toDateTimeToday(DateTimeZone)
。)然后使用
Timestamp(long)
构造函数创建一个时间戳还有很多其他方法(例如,如果您真的需要,可以使用
SimpleDateFormat
而不是使用Joda-Time进行解析…)但最终您可能需要Timestamp(long)
构造函数。(在这里使用Joda Time的好处是,很明显每个阶段都代表着什么——你不会试图将“时间”视为“日期和时间”,反之亦然。)# 5 楼答案
我能想到的使用标准API的最佳方法并没有那么漂亮:
请注意,java。sql。时间valueOf根据需要接受格式为“HH:MM:SS”的字符串。其他格式需要使用SimpleDataFormat
# 6 楼答案
这个怎么样:
输出: