我正在做一些调试,发现很奇怪。为什么
string.Join("3", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
返回
2019312330
代替
3201912330
答案 0 :(得分:5)
您要Concat
,而不是Join
:
string result = string.Concat("3", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
请注意,如果Join
"3"
(第一个参数)是定界符:
string.Join("3", "A", "B", "C");
返回"A3B3C"
答案 1 :(得分:2)
第一个参数用于其他参数之间。
要获得预期结果,请使用
string.Join("", "3", DateTime.Now.Year, ...
或使用
DateTime.Now.ToString("3yyyyMd")
答案 2 :(得分:0)
string.Join()
只是将元素与您在第一个参数(即定界符)中指定的分隔符连接起来
string.Join("3", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
此行将返回如下字符串:DateTime.Now.Year+"3"+ DateTime.Now.Month +"3"+ DateTime.Now.Day
但您想将3与"yyyyMd"
格式的DateTime串联,因此可以尝试
string result = $"3{DateTime.Now.ToString("yyyyMd")}"
答案 3 :(得分:0)
您正在使用 string.Join(字符串分隔符,params obj []数组)方法,该方法使用每个元素之间的指定分隔符来连接对象数组的元素。
这就是为什么在每个数组元素(即年,月和日)之后获得“ 3”的原因。
使用 string.Concat(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day)。