如果字符串中的某个部分丢失,如何设置时间戳?

时间:2016-04-02 22:57:12

标签: java string datetime java-ee timestamp

例如,你有:

String datetime = new String("2008-05-09");

Timestamp.valueOf( datetime )

值为:2008-05-09 00:00:00.0,没有任何例外。

另一个例子:

String datetime = new String("2008-05-09 13:34");
Timestamp.valueOf( datetime )

值为:2008-05-09 13:34:00.0,没有任何例外。

谢谢,

2 个答案:

答案 0 :(得分:0)

如果我理解你的话,你会得到一个只是时间戳的一部分并且你想要解析它的字符串?如果您知道将收到的格式,则可以使用SimpleDateFormat。 https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html

答案 1 :(得分:0)

我假设您要将Strings转换为timestamp个对象,无论它们是否包含时间部分。

你可以这样做:String - >日期 - >时间戳

要将String转换为Date,您可以使用DateUtils库(具有多种日期格式),然后,您可以将日期转换为时间戳。看看下面的例子:

String[] dateFormats = new String[]{"yyyy-MM-dd", "yyyy-MM-dd hh:mm", "yyyy-MM-dd hh:mm:ss"};

for(String dateString : new String[]{"2008-05-09", "2008-05-09 13:34", "2008-05-09 13:34:40"}){
    Date date = DateUtils.parseDate(dateString, dateFormats);
    Timestamp timeStamp = new Timestamp(date.getTime());
    System.out.println(timeStamp);
}