分别获取hour和minute值,再拼在一起。

解决方案 »

  1.   

    本来想过用replace 把 s 去掉,但是刚试了一下
    把格式为:ss:H:mm:ss
    系统就会把第一个ss后面:和第二个ss前面的:也给去掉了
      

  2.   

    回alldj:请问怎么拼,hour 可能在 minute 前面,可能在 minute 后面,也可能根本没有。
      

  3.   

    如果楼主只是想要秒的时间的话可以这样
    DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
      

  4.   

    回 khijfv2008:客户的电脑上时间格式不是定死的,我就是想要以不变应万变。就像系统通知栏那样的。
      

  5.   

    回 cyxif:我也想用正则,但是不知道怎么写
      

  6.   

    系统栏里什么时候会hour跑到minute后面去?固定就是hour:minute这种,DateTime.Now.Hour.ToString()+":"+DateTime.Now.Minute.ToString()
      

  7.   

    回 alldj:你把区域选项中的格式写成 mm:hh
      

  8.   

    刚去试了一下,任务栏中的时间格式是固定的,无论怎么改也不会变,不过以前的Windows版本(我用的是XP)可以设置一个叫做短时间格式的东西,任务栏中的碎段时间格式变。你为什么不用ShortTimePattern呢?
      

  9.   

    this.textBox2.Text = DateTime.Now.ToString(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern).Substring(0,DateTime.Now.ToString(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern).Length-3);
      

  10.   

    DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
      

  11.   

    多谢大家,可是 ShortTimePattern 没有上午和下午显示,而 LongTimePattern 可以为以下形式:
    hh:mm:ss tt
    ss hh:mm tt
    tt hh:mm
    H:mm:ss
    H:mm
    ss hh:mm ss
    以上岂能用简单的 substring(...,len(...)-3)或者直接用ToString("yyyy-MM-dd hh:mm:ss")来解决的。
      

  12.   

    区域时间里我看到的最后三位全是:ss的,并没有看到有设置hh:mm:ss tt的。
      

  13.   

    这种问题就算要解决也是很容易的,格式就那么几种,判断最后三位的状态后分两至三个case就能搞定了,有时没现成方法的时候就用死办法。
      

  14.   

    多谢各位,我搞定了,用正则:string longTimePattern = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern;
                string timeSeparator = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.TimeSeparator;
    string pattern = string.Format("(?<value>([{0}\\s]*)s+([{0}\\s]*)*)[^s{0}]?", timeSeparator)
    ......
    虽然我正则是个菜鸟,但是至少也可以解决了。