2013-06-30 76 views
0

我想在24小時fromat轉換爲時間戳到12小時format.Here是我的代碼與大括號中提到的輸出。如何將C#中的24小時格式的時間戳轉換爲12小時格式?

date = Dyear + "" + Dmonth + "" + Dday + " " + strhour+""+strminute+""+"00"; (20130628 142900) 
DateTime dt = new DateTime(Convert.ToInt32(Dyear), Convert.ToInt32(Dmonth), Convert.ToInt32(Dday), Convert.ToInt32(strhour), Convert.ToInt32(strminute), 00);(6/28/2013 2:29:00 PM) 
TimeSpan ts = dt.Subtract(new DateTime(1970, 01, 01, 00, 00, 00));(15884.14:29:00) 
String sTimeStamp = ts.TotalMilliseconds.ToString("0"); (1372429740000) 

上述sTimeStamp將在MM/DD/YYYY HH:MM:TTT格式(2013年6月28日19:59:000)等 「1372429740」。 我想顯示12小時格式的時間戳,如MM/DD/YYYY hh:mm:ttt格式(2013年6月28日07:59:000),如「1372386540」

+1

但是,這根本不是一樣的時間戳...我很難理解你真正想要實現的目標這裏。如果您只是想將時間戳更改爲早上,請執行此操作 - 文本格式部分無關緊要。 –

+0

我想以12小時的格式顯示股票圖表。所以在這段代碼中,我將得到特定日期的時間跨度並以毫秒爲單位轉換日期。 – user2333363

回答

0

請記住格式你提到的只是爲了顯示目的。如果你想在你的計算中考慮這個修改(把2而不是14),則會出現12小時的滯後。如果你想要的是執行

string sTimeStamp = dt.ToString("MM/dd/yyyy hh:mm:ss tt"); 

如果你只是想顯示2013年6月28日2時29分00秒,你可以使用下面的字符串(計算毫秒不會受到影響)這個變化在時間計算期間(不確定這樣做的原因),你必須修改生成dt的方式(這次,計算的毫秒將受到影響:相對於上述選項,滯後12小時):

DateTime dt = new DateTime(Convert.ToInt32(Dyear), Convert.ToInt32(Dmonth), Convert.ToInt32(Dday), Convert.ToInt32(new DateTime(2000, 1, 1, Convert.ToInt32(strhour), 0, 0).ToString("hh:mm tt").Split(':')[0]), Convert.ToInt32(strminute), 0); 

在這第二種情況下,0由於輸入值的「12h理解」,總會形成;例如:如果strhour是2或14,它將佔2(上午)。

相關問題