2012-04-16 73 views
0
当从我的REST Web服务及其显示的客户端,我的客户端的WPF应用程序的代码看起来

以日期时间为diffculty林这样的:日期时间显示问题

public MainWindow() 
    { 
     InitializeComponent(); 
     string uriGroups = "http://localhost:8000/Service/Student"; 
     XDocument xDoc = XDocument.Load(uriGroups); 

     foreach(var node in xDoc.Descendants("Student")) 
     { 

      GroupBox groupbox = new GroupBox(); 
      groupbox.Header = String.Format(node.Element("StudentID").Value); 
      groupbox.Width = 100; 
      groupbox.Height = 100; 
      groupbox.Margin = new Thickness(2); 

      TextBlock textBlock = new TextBlock(); 
      textBlock.Text = String.Format(node.Element("FirstName").Value + " " + (node.Element("LastName").Value)); 
      textBlock.TextAlignment = TextAlignment.Center; 

      TextBlock textBlock1 = new TextBlock(); 
      textBlock1.Text = String.Format(node.Element("TimeAdded").Value); 
      textBlock1.TextAlignment = TextAlignment.Center; 
      textBlock1.VerticalAlignment = VerticalAlignment.Bottom; 

      StackPanel stackPanel = new StackPanel(); 
      stackPanel.Children.Add(groupbox); 

      stackPanel.Children.Add(textBlock); 
      stackPanel.Children.Add(textBlock1); 
      stackPanel.Margin = new Thickness(10); 

      MainArea.Children.Add(stackPanel); 
     } 

    } 

我的服务是这样的:

public class Student 
{ 
    .... 
      public DateTime TimeAdded; 
     public string TimeAddedString 
     { 
      get 
      { 
       return this.TimeAdded.ToString("dd/MM/yyyy hh:mm:ss"); 
      } 
     } 

但输出看起来是这样的:

enter image description here

我的客户端应用程序代码是否有一种方法来截断或重新格式化它?

+1

这是功课吗?如果是这样,那里有一个标签 – 2012-04-17 06:44:50

回答

3

你可以把它转换为DateTime,然后用String.Format

下面是一个格式例如,你可以使用:

String.Format("{0:M/d/yyyy}", ((DateTime)node.Element("TimeAdded").Value)) 

您还可以使用DateTime.ToString(FORMAT)

((DateTime)node.Element("TimeAdded").Value).ToString("d"); 

我假设.Value返回一个object,但是如果它返回一个DateTime,那么你可以放下这些强制转换。

如果你得到一个字符串转换成你的客户,那么你需要使用DateTime.Parse

(DateTime.Parse(node.Element("TimeAdded").Value)).ToString("d"); 
String.Format("{0:M/d/yyyy}", DateTime.Parse(node.Element("TimeAdded").Value)) 
+0

无法将类型字符串转换为system.datetime?我以为会这样做... – 2012-04-16 21:14:10

+0

即使是底部编辑过的代码,Nah仍然是一样的。 – 2012-04-16 21:20:06

+0

有什么更多的想法,我可以如何格式化这个客户端? – 2012-04-16 21:35:52

2

您正在使用TimeAdded ...但我认为你应该使用TimeAddedString

textBlock1.Text = String.Format(node.Element("TimeAdded").Value); 

应该是

textBlock1.Text = String.Format(node.Element("TimeAddedString").Value); 

我相信

+0

Nah引发异常 – 2012-04-16 21:15:21

+1

您是否看到我要去哪里?你有TimeAdded作为日期......这就是你在textBlock1.Text中使用的东西......你可能需要修改你的服务,以便TimeAddedString可见(我认为这是因为它是公共的)。 – 2012-04-16 21:22:09

+0

TimeAddedString只是以合适的格式返回日期,它没有工作。所以我正在提出新的建议。 – 2012-04-16 21:26:01