[C#] 程式執行時間計算與字串輸出格式

  • 6184
  • 0
  • 2012-06-19

摘要:[C#] 程式執行時間計算與字串輸出格式

很常用但是通常都會忘記

DateTime st = DateTime.Now;

......

DateTime ed = DateTime.Now;

TimeSpan ts = ed.Subtract(st);

string output = String.Format("{0:00}:{1:00}:{2:00}", ts.TotalHours, ts.Minutes, ts.Seconds);

 

路人回應的方法很好用

稍微整理下用法大致如下

Stopwatch sw = new Stopwatch();

sw.Start();

//

sw.Stop();

TimeSpan ts = sw.Elapsed;


 

 

時間與字串之間的轉換

時間轉字串

string datestring = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss ffff")

string datestring = DateTime.Now.ToString("s", System.Globalization.DateTimeFormatInfo.InvariantInfo)

"s" 代表Sortable格式 "yyyy/MM/ddTHH:mm:ss"

字串轉時間

DateTime st = DateTime.Parse(datestring);

 

 

附帶一提Java關於時間格式會用到SimpleDateFormat來設定格式

大致上與C#相同,但是注意關於millisecond在Java是用大S來取代三個f

java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss SSS - ");

String datestring = sdf.format(new java.util.Date());

Java只能用大寫開頭的String,不像C#可以用大寫String(物件)與小寫string(型態)

如果要計算執行時間

就必須用getTime之後的時間值相減,單位是毫秒

                java.util.Date st = new java.util.Date();
                //
                java.util.Date ed = new java.util.Date();
                long timeSpanMillisecond = ed.getTime() - st.getTime();
                double timeSpanSecond = timeSpanMillisecond/1000f;
                String msg = String.format("TimeSpan : %7.2f sec", timeSpanSecond);