我在服务器上有一个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服务不太熟悉。提前谢谢!
答案 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
作为变量,也许您可以将其与date
或output
混合使用变量..