我从SO中的一个问题中复制了以下代码:
public static String getCurrentTimeStamp() {
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = new Date();
String strDate = sdfDate.format(now);
return strDate;
}我只想获得系统时间,而不是日期。然后,我必须将第二行代码更改为:
SimpleDateFormat sdfDate = new SimpleDateFormat(" HH:mm:ss") ; 然后,DATE()必须获取当前时间。到目前为止没有问题,但是我不能理解所使用的format()函数。我的意思是,我们不能简单地输出变量now而不是strdate吗?是不是因为函数getCurrentTimeStamp()的返回类型是String?
请澄清,如果有任何其他更简单的代码来单独获得系统时间,请一定要分享。
发布于 2012-04-28 16:41:21
我的意思是,我们现在不能简单地输出变量而不是
。
你可以返回now.toString() --但是这将使用Date.toString()恰好选择的格式,而你想要一个特定的格式。在本例中,SimpleDateFormat对象的作用是将Date (这是一个时间点,不引用任何特定的日历或时区)转换为String,并应用适当的时区、日历系统和文本格式(在本例中为HH:mm:ss)。
不过,您仍然可以通过删除局部变量(每个变量只使用一次)来稍微简化您的方法:
public static String getCurrentTimeStamp() {
return new SimpleDateFormat("HH:mm:ss").format(new Date());
}或者,您可能会发现保留日期格式的变量而不是日期和返回值的可读性更好:
public static String getCurrentTimeStamp() {
DateFormat format = new SimpleDateFormat("HH:mm:ss");
return format.format(new Date());
}就我个人而言,我建议您改用Joda Time --它是一个更好的日期/时间应用编程接口,而且它的格式化是线程安全的,所以您可以轻松地保留对单个格式化对象的引用。
发布于 2012-04-28 17:19:17
public static String getCurrentTimeStampwithTimeOnly() {
return new SimpleDateFormat("HH:mm:ss").format(new Date());
}帮助你做到这一点。
https://stackoverflow.com/questions/10361955
复制相似问题