Java:将时间从今天转换为时间戳

Jon*_*Cox 5 java timestamp

我正在使用Java 6,我从当前日期开始有一段时间作为字符串,如下所示:14:21:16我需要将其转换为存储在数据库中的Timestamp对象.

但是,似乎没有好办法从中获取时间戳.Timestamp.valueOf(String)非常接近,但需要约会.有没有一种从这样的字符串制作Timestamp对象的好方法?

Jon*_*eet 6

就个人而言,我会使用Joda Time来解析a的时间LocalTime,并将其添加到今天LocalDate以获取a LocalDateTime,然后将其转换为Instant使用您感兴趣的任何时区.(或使用LocalTime.toDateTimeToday(DateTimeZone).)

然后使用Timestamp(long)构造函数创建时间戳.

还有很多其他的方法(比如使用SimpleDateFormatJoda Time代替解析,如果你真的想要...)但最终你可能最终想要Timestamp(long)构造函数.(在这里使用Joda Time的好处是很明显在每个阶段代表什么 - 你不是试图将"仅限时间"视为"日期和时间",反之亦然.)


Sea*_*oyd 5

这个怎么样:

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