我正在使用Java 6,我从当前日期开始有一段时间作为字符串,如下所示:14:21:16我需要将其转换为存储在数据库中的Timestamp对象.
但是,似乎没有好办法从中获取时间戳.Timestamp.valueOf(String)非常接近,但需要约会.有没有一种从这样的字符串制作Timestamp对象的好方法?
就个人而言,我会使用Joda Time来解析a的时间LocalTime,并将其添加到今天LocalDate以获取a LocalDateTime,然后将其转换为Instant使用您感兴趣的任何时区.(或使用LocalTime.toDateTimeToday(DateTimeZone).)
然后使用Timestamp(long)构造函数创建时间戳.
还有很多其他的方法(比如使用SimpleDateFormatJoda Time代替解析,如果你真的想要...)但最终你可能最终想要Timestamp(long)构造函数.(在这里使用Joda 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);
Run Code Online (Sandbox Code Playgroud)
输出:
2011-03-02 14:21:16.0
| 归档时间: |
|
| 查看次数: |
13298 次 |
| 最近记录: |