Har*_*vey 0 c# typeconverter winforms
我有这个应用程序,自动生成订单ID.现在我希望它像这样9999-99-9999,前四个数字代表年份.现在,第二个是月份,最后一个是自动递增.
我现在在第二个月工作.因此,在我的代码中,我必须知道它是一个两位数字还是一位数字,以便我可以添加一个零.当我运行应用程序时出现错误,表示输入字符串的格式不正确.这是什么意思?我的代码中有错误吗?
private void btnOk_Click(object sender, EventArgs e)
{
string order_ID = DateTime.Now.Year.ToString();
order_ID += "-";
if (Convert.ToInt32(order_ID) < 10)
{
order_ID += "0";
}
order_ID += DateTime.Now.Month.ToString();
}
Run Code Online (Sandbox Code Playgroud)
错误就在这一行Convert.ToInt32(order_ID).
目前还不清楚你要用这个来实现什么 - 为什么你会期望解析的一年不到10?除非你真的期待一些严重损坏的系统时钟,否则没有必要这样做.
但您根本不需要单独转换年份和月份:
string orderId = DateTime.UtcNow.ToString("yyyy-MM",
CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
请注意,使用的UtcNow是比使用该系统的本地时区总体更好的主意-尽管你可以改变,如果你真的要要使用系统的本地时区.
CultureInfo.InvariantCulture如果当前文化的默认日历系统是非公历的,则使用将避免它转换为不同的日历系统,并且还避免使用非不变格式信息.(在这种情况下,后者不会成为问题,但很容易成为其他格式字符串的问题.)
然后,您需要添加自动增量部分,但这是另一回事.
| 归档时间: |
|
| 查看次数: |
1877 次 |
| 最近记录: |