好用的string.Format或ToString()格式化字串的方法

那天在問同事寫網頁圖檔失效的處理
原本只是想提一個簡單的做法
結果意外扯到檔案上傳後命名的方式
同事說他檔案上傳後會重新命名
我心想"恩..本來就要重新命名阿"因為會牽扯太多問題了
結果同事的重新命名方式是"年_月_日_時_分_秒"

那天在問同事寫網頁圖檔失效的處理

原本只是想提一個簡單的做法

結果意外扯到檔案上傳後命名的方式

同事說他檔案上傳後會重新命名

我心想"恩..本來就要重新命名阿"因為會牽扯太多問題了

結果同事的重新命名方式是"年_月_日_時_分_秒"

也就是最後的檔案名稱會類似2008_08_09_13_26_30.jpg類似這樣

cloudio是不知道其餘的工程師們是怎麼做

只是cloudio習慣用年月日_sessionID_4位數的亂數+檔案副檔名

不過那些都不是重點

點重是同事的"年_月_日_時_分_秒"是用了5次的DatePart+"_"來組成的@@

 

其實也沒什麼不好

只要程式沒有bug 主管沒有意見

習慣怎麼寫都OK啦

 

只是cloudio印象中.NET不是有string.Format或ToString()給格式化字串的方法嗎?

.NET應該有比較快的方法處理吧?

所以小試一下發現


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Response.Write(Date.Now.ToString("yyyy_MM_dd_hh_mm_ss"))
End Sub

不就好了...

 

後來又小玩了一下發現字串格式化是依照ASP.NET組態設定中文化特性的設定

cluture

來決定格式化後的字串

那如果我們電腦設定為zh_TW而想使用字串格式化輸出AM PM或其他想的到的地方需要使用其他文化特性的格式化字串怎麼辦?

應該不會是更改整個ASP.NET的web.config吧

這時只要這樣就好了

 


DateTime tmpDate = DateTime.Now;
Response.Write("ASP.NET組態設定的文化特性 : "+tmpDate.ToString("tt"));
Response.Write("<br/>");
System.Globalization.CultureInfo cldCi = new System.Globalization.CultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = cldCi;
Response.Write("自行設定的文化特性 : " + tmpDate.ToString("tt"));

或是


DateTime tmpDate = DateTime.Now;
Response.Write("ASP.NET組態設定的文化特性 : " + tmpDate.ToString("tt"));
Response.Write("<br/>"); 
Response.Write("自行設定的文化特性 : " + tmpDate.ToString("tt",new System.Globalization.CultureInfo("en-US")));

或是


DateTime tmpDate = DateTime.Now;
Response.Write("ASP.NET組態設定的文化特性 ;"+string.Format("{0:tt}", tmpDate));
Response.Write("<br/>");
System.Globalization.CultureInfo cldCi = new System.Globalization.CultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = cldCi;
Response.Write("自行設定的文化特性" + string.Format("{0:tt}", tmpDate));

只是參數只有一個如果是我的話應該會用第一種方法吧

還真方便阿^_^

順便貼上cloudio後來在MSDN上找到的有用資料

http://msdn.microsoft.com/zh-tw/library/system.iformattable.tostring.aspx

http://msdn.microsoft.com/zh-tw/library/system.globalization.numberformatinfo.aspx

http://msdn.microsoft.com/zh-tw/library/system.globalization.datetimeformatinfo.aspx

http://msdn.microsoft.com/zh-tw/library/system.globalization.cultureinfo.aspx

Technorati 的標籤: