c# - 在 C# 中添加日期到日期问题中的问题
问题描述
我在 Visual Studio 2019 中使用 C#。我已完成编码以在日期中添加天数,日期在 Label1 中。当我在本地系统上执行代码时,它工作正常。但是当我在服务器上执行代码时,它会错误地将日期添加到日期中。
我的代码显示在这里:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label1.Text = DateTime.Now.ToString("dd/MM/yyyy");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = Convert.ToDateTime(Label1.Text).AddDays(1).ToString("dd/MM/yyyy");
}
在服务器上执行代码会返回以下输出 - 例如今天的日期是 09/07/2020,我得到这个输出:
- 单击按钮时:
7/10/2020
- 单击按钮时:
11/7/2020
- 单击按钮时:
08/11/2020
- 单击按钮时:
12/08/2020
- 单击按钮时:
09/12/2020
- 单击按钮时:
13/09/2020
解决方案
它适用于我的机器,因为我是法国人......
您的系统区域设置和日期格式是什么?
您应该将 DateTime 保存在私有变量中并使用它而不是标签来增加以避免转换问题:
private DateTime Label1DateTime;
private void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label1DateTime = DateTime.Now;
Label1.Text = Label1DateTime.ToString("dd/MM/yyyy");
}
}
private void Button1_Click(object sender, EventArgs e)
{
Label1DateTime = Label1DateTime.AddDays(1);
Label1.Text = TheDateTime.ToString("dd/MM/yyyy");
}
现在它应该可以在任何系统上运行。
在 WinForms 上,如果您不想创建类成员,也可以使用标签的 Tag 属性...
private void Form_Load(object sender, EventArgs e)
{
Label1.Tag = DateTime.Now;
Label1.Text = ((DateTime)Label1.Tag).ToString("dd/MM/yyyy");
}
private void Button1_Click(object sender, EventArgs e)
{
if ( Label1.Tag is DateTime )
{
var date = ((DateTime)Label1.Tag);
date = date.AddDays(1);
Label1.Tag = date;
Label1.Text = date.ToString("dd/MM/yyyy");
}
}
推荐阅读
- r - 在 RStudio 中进行分析 - profvis() 未提供所需的输出
- c - 如何计算玻璃汁的体积?
- javascript - 使用 JavaScript 中的点击问题一一递增循环迭代
- r - 创建假人后保存标签包装中的标签
- android - 有没有办法在应用程序中打开 NFC 标签 URL,而不是 google/safari?
- reactjs - 我正在寻找一种在 react-redux-firebase 中使用 firestore connect 获取某些字母的方法
- c++ - 运行 C++ 项目
- r - 使用 R 从网站中查找所有 csv 链接
- javascript - 是否有 ESLint 规则来防止 `Promise
` to `boolean` 强制转换 - typescript-compiler-api - 打字稿转换器,`node.parent`未定义