2012-02-25 28 views
0

这里比较新的Windows Phone开发者,寻找一些帮助。基本上我正在搞一个我最终想要投放市场的应用程序。在c#中为windows phone设置特定的日期格式

基本上应用程序正在倒计时到一个特定的日期,我已经倒计时工作没有问题,但是我确实有一个日期格式的问题,因为我在英国和日期格式是dd/MM/yyyy,而状态是MM/dd/yyyy。因此,该应用在美国的任何人都会成为负面数字。基本上我需要某种解决方法的帮助,无论是为我的应用程序设置通用日期格式还是类似的东西。下面是倒计时代码:

 DateTime startDate = DateTime.Now; 
     var launch = DateTime.Parse("01/08/2012 00:00:00 AM"); 
     TimeSpan t = launch - startDate; 

     Countdown.Text = string.Format("\r {0}\r Days \r {1}\r Hours \r {2}\r Minutes \r {3}\r Seconds", t.Days, t.Hours, t.Minutes, t.Seconds); 
+0

在与问题无关的注释上:符号'00:00:00 AM'违背大多数时间约定;通常会写'12:00:00 AM'(12小时制)或'00:00:00'(24小时制)。 – Douglas 2012-02-25 15:56:54

回答

2

如果你硬编码的日期,那么你应该使用DateTime(int,int,int)构造函数,而不是从一个字符串解析它。这三个参数总是被解释为年,月,日(按此顺序)。

var launch = new DateTime(2012, 08, 11); 
+0

这正是我需要的,就像我说的,我对c#很新,所以非常感谢大家的帮助! – BB1873 2012-02-25 15:52:14

0

DateTime的ToString()方法有一个需要自定义格式字符串的重载。

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

这将是相当简单的要求,或建立用户的区域,并以正确的格式发送日期给他。

除此之外,ToString有一个重载需要一个System.Globalization.CultureInfo对象,所以你可以做类似的事情。

myDateTime.ToString(new System.Globalization.CultureInfo(Thread.CurrentThread.CurrentCulture.Name)); 

这应该为您提供基于操作系统设置的用户区域正确格式的日期时间。