2010-06-23 86 views
2

我的C#應用​​程序發送一個格式化的日期(例如:9/6/2010 - dd/mm/yyyy)到一個excel電子表格......但是然後...它涉及到6/9/2010! (MM/DD/YYYY)日期格式 - Excel和C#

我只是用下面的代碼發送日期:

VarRowColumnWhatever = _MyList.MyObject.MyDateTime.Date.ToString(); 

Debbuging它,我可以看到該值是正確的!但不是在電子表格=(

我開始以爲是什麼做用Excel ...

有人請能幫助我嗎?謝謝!

回答

1

堅持按照你想要的方式串。到

了toString()部分例如,爲了獲得完整的日,月,日,年,我把:

_MyList.MyObject.MyDateTime.TimeOfDay.ToString( 「d」);

這將輸出字符串: 「週三,2010年6月23日,」

//這個例子顯示以下輸出到控制檯:
// d:2008年6月15日
// d:週日,2008年6月15日
// f:2008年6月15日星期日下午9:15
// F:星期日,2008年6月15日9:15:07 PM
// g:6/15/2008 9:15 PM
// G:6/15/2008 9:15:07 PM
// m:June 15
// o:2008-06-15T21:15:07.0000000
// R:太陽,2008年6月15日21時15個07秒GMT
// S:2008-06-15T21:15:07
//噸:下午9點15分
// T:9: 15:07 PM
// U:2008-06-15 21:15:07Z
// U:週一,2008年6月16日,上午04點15分07秒
// Y:2008年6月
//
//'h:mm:ss.ff t':9:15:07.00 P
//'d MMM yyyy':15 Jun 2008
//'HH:mm:ss.f':21 :15:07.0
//'dd MMM HH:mm:ss':15 Jun 21:15:07
//'\ Mon \ t \ h:M':Month:6
//'HH:mm:ss.ffffzzz 「:21:15:07.0000-07:00

+1

這個問題實際上有這個模式做派的「的ToString 「,它的工作!但在我的情況下,我只是刪除「ToString」,只發送「日期」,它也可以工作...我感覺有點'擁有'之後=(感謝和問候! – Kira 2010-06-23 18:59:09

1

嘗試寫你這樣的代碼:

VarRowColumnWhatever = _MyList.MyObject.MyDateTime.Date.ToString("dd\/MM\/yyyy"); 

,或者確保您的區域性設置爲一個與你想要的格式。

如果你把值轉換爲Excel單元格是Excel Date類型(如果使用互操作),那麼你應該使用:

VarRowColumnWhatever = _MyList.MyObject.MyDateTime.Date.ToOADate(); 
+1

我也試過這個,但就像我之前說過的,我只是沒有想到在刪除ToString的可能性......好奇地(或不是)它適用於我的情況,從現在開始,我會在一些細節上給予更多的關注LOL = D – Kira 2010-06-23 19:24:42

+0

使用ToOADate()是一種方法,如果您將日期作爲文本發送,Excel可能不會將其識別爲日期到文化差異(Excel文化可能不在您的控制之下)並將其顯示爲文本,這會破壞排序。 – 2013-06-06 10:48:03