![](/img/trans.png)
[英]Determine whether time from hh:mm:ss to hh:mm:ss is am,pm, or both java
[英]converting time from hh:mm:ss to hh:mm in java
我想將時間從hh:mm:ss轉換為hh:mm,它來自數據庫(我的sql),格式為hh:mm:ss。 我嘗試了以下代碼,但沒有得到我想要的。
try {
s= HibernateUtil.currentSession();
tx=s.beginTransaction();
Query query = s.createQuery("select from Dailytimesheet dailytimesheet where dailytimesheet.IdDailyTimeSheet=6083 " );
for(Iterator it=query.iterate();it.hasNext();)
{
if(it.hasNext())
{
Dailytimesheet object=(Dailytimesheet)it.next();
String dt=object.getTimeFrom().toString();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
long ms=0;
try {
ms = sdf.parse(dt).getTime();
}
catch (ParseException e) {e.printStackTrace();}
Time ts = new Time(ms);
out.println("<h2>"+ts+"</h2>");
謝謝你的幫助。
您需要使用DateFormat#format()
將java.util.Date
對象轉換為表示所需格式的人類可讀時間的java.lang.String
對象。 您不能再次將其轉換回Date
(或它的任何子類,如java.sql.Time
等)而不會丟失格式。 格式即不存儲在Date
。 Date
僅知道自紀元以來的毫秒數。
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
java.util.Date date = object.getTimeFrom();
String string = sdf.format(date);
System.out.println(string);
最好通過hhmmss.substring(0,5)
;-)將HH:MM:SS轉換為HH:MM;或者,您可能更喜歡直接在SELECT
語句中格式化數據。
也許您可以在Dailytimesheet中添加一個名為getTimeWithoutSecondsFrom()的新方法,該方法將復制日期對象,然后在返回日期之前將副本的秒數設置為零。
另外一個好處是,您可以完全避開SimpleDateFormat sdf位,這樣代碼將更易於閱讀。
代碼可能看起來像這樣:
public Date getTimeWithoutSecondsFrom()
{
Date result = this.getTimeFrom();
result.setSeconds(0);
return(result);
}
嘗試java.util.Calendar類怎么辦? 您可以執行以下操作:
Calendar c = new Calendar();
Calendar.setDate(new Date(object.getTimeFrom().toString()));
String date = Calendar.HOUR + ":" + Calendar.MINUTE
還是我沒有收到您的問題?
您應該使用DateFormat
的format方法。 就像是:
out.println("<h2>"+sdf.format(ts)+"</h2>");
try {
String strDate = object.getTimeFrom().toString();
SimpleDateFormat sdf1 = new SimpleDateFormat("HH:mm:ss");
SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm");
Date date = sdf1.parse(strDate);
System.out.println(sdf2.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
在這種情況下,我只會在SQL中進行轉換。 這是有關日期轉換的MySql 參考 。 就您而言,應該是這樣的-
塊引用DATE_FORMAT('2007-10-04 22:23:00','%H:%i');
看起來您需要為從查詢中獲得的每一行進行轉換,並且如果您要檢索許多記錄,則由數據庫引擎完成轉換可能會更具成本效益。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.