将自定义文化添加到Web服务?

时间:2016-01-29 07:24:42

标签: c# web-services date

我在服务器上有一个Web服务,我无法管理区域设置。我的Web方法需要日期格式“dMYYYY”,因此当我调用Web方法并传递日期时间字符串时,服务器应该将此字符串解析为日期格式“dMYYYY”,并使用日期分隔符“。 “ 在我的桌面应用程序中,我使用以下代码执行此操作:

 public partial class MainF : Form
 {
   CultureInfo customCulture = new CultureInfo(CultureInfo.CurrentCulture.Name);

      public MainF()
      {
           InitializeComponent();

           customCulture.DateTimeFormat.ShortDatePattern = "d.M.yyyy";
           customCulture.DateTimeFormat.DateSeparator = ".";
           Thread.CurrentThread.CurrentCulture = customCulture;
      }
      private void DisplayDate(string date)
      {
        string output="";
        DateTime myDate;
        if (!DateTime.TryParse(input, customCulture, DateTimeStyles.None, out myDate))
        {
           MessageBox.Show("Date cannot be parsed!");
        }
        else
        {
           MessageBox.Show(myDate.ToShortDateString());
        }
      }
 }

但在我的网络服务中,我应该把日期格式的定义,日期分隔符和当前线程文化=自定义文化???在每一种方法中?抱歉,我现在对Web服务不太熟悉。提前谢谢!

1 个答案:

答案 0 :(得分:2)

如果您想提供自定义格式,则需要使用DateTime.TryParseExact方法而不是DateTime.TryParse。例如;

if(DateTime.TryParseExact(input, customCulture.DateTimeFormat.ShortDatePattern, 
                          customCulture, DateTimeStyles.None, out myDate))
{
    MessageBox.Show("Date cannot be parsed!");
}

Exact是指向自定义格式的这两种方法之间的区别。

顺便说一下,我不会在您的代码中看到任何 input作为变量,也许您可​​以将其与dateoutput混合使用变量..