string str = this.tbTime.Text; if(string.IsNullOrEmpty(this.tbTime.Text)) { return; } DateTime time = Convert.ToDateTime(str); str = time.ToString("yyyy/MM"); this.tbTime.Text = str;
调试str的值是2018-01-24 13:37:12
为什么我的转化出来的结果不是2018/01而是2018-01,后来发现这个转化和电脑本地的时间格式有关,请问如何才能无视本地时间将格式统一转换成2018/01这样的格式
.ToString()
转换时间格式与电脑本地的时间格式没有关系
我以上代码运行就和本地时间格式有关
@李zp: 这里运行与本地时间格式无关,下面的代码打印结果是2018$01
static void Main(string[] args)
{
var str = "2018-01-24 13:37:12";
DateTime time = Convert.ToDateTime(str);
str = time.ToString("yyyy$MM");
Console.WriteLine(str);
}
@dudu: 我的程序在时间格式不同的电脑上运行结果是不同。不知道你代码里的$会不会有影响,但是/是有有影响的
@李zp:
dudu用铁一般的事实告诉你已经证明ToString与本地设置无关,换句话说结果是什么样的取决于格式化字符串参数。
==========================
string str = this.tbTime.Text;
......
str = time.ToString("yyyy/MM");
this.tbTime.Text = str;
话说这段代码到底要干什么?
@李zp: 那改为下面的代码试试
str = time.ToString("yyyy/MM", CultureInfo.InvariantCulture);
@dudu: 这样就可以了
@西漠以西: 有关系的
办法都是想出来的,你可以 date.year +"/"+date.month
好办法
哦哦哦哦哦