首页 新闻 会员 周边 捐助

C# 把时间中间的-换成/

0
悬赏园豆:10 [已解决问题] 解决于 2018-01-24 15:21
 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这样的格式

李zp的主页 李zp | 初学一级 | 园豆:127
提问于:2018-01-24 13:43
< >
分享
最佳答案
1

.ToString()转换时间格式与电脑本地的时间格式没有关系

收获园豆:5
dudu | 高人七级 |园豆:30734 | 2018-01-24 14:02

我以上代码运行就和本地时间格式有关

李zp | 园豆:127 (初学一级) | 2018-01-24 14:09

@李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 | 园豆:30734 (高人七级) | 2018-01-24 14:13

@dudu: 我的程序在时间格式不同的电脑上运行结果是不同。不知道你代码里的$会不会有影响,但是/是有有影响的

李zp | 园豆:127 (初学一级) | 2018-01-24 14:31

@李zp: 

dudu用铁一般的事实告诉你已经证明ToString与本地设置无关,换句话说结果是什么样的取决于格式化字符串参数。

==========================

string str = this.tbTime.Text; 

......

str = time.ToString("yyyy/MM");

this.tbTime.Text = str;

话说这段代码到底要干什么?

西漠以西 | 园豆:1675 (小虾三级) | 2018-01-24 14:36

@李zp: 那改为下面的代码试试

str = time.ToString("yyyy/MM", CultureInfo.InvariantCulture);
dudu | 园豆:30734 (高人七级) | 2018-01-24 14:36

@dudu: 这样就可以了

李zp | 园豆:127 (初学一级) | 2018-01-24 14:40

@西漠以西: 有关系的

李zp | 园豆:127 (初学一级) | 2018-01-24 15:16
其他回答(2)
1

 办法都是想出来的,你可以 date.year +"/"+date.month

收获园豆:5
jqw2009 | 园豆:2341 (老鸟四级) | 2018-01-24 13:50

好办法

支持(0) 反对(0) 李zp | 园豆:127 (初学一级) | 2018-01-24 14:01
0

哦哦哦哦哦

西漠以西 | 园豆:1675 (小虾三级) | 2018-01-24 15:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册