2010-06-23 109 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