一个看似简单,实际高难度的问题:时间格式。 分别获取hour和minute值,再拼在一起。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本来想过用replace 把 s 去掉,但是刚试了一下把格式为:ss:H:mm:ss系统就会把第一个ss后面:和第二个ss前面的:也给去掉了 回alldj:请问怎么拼,hour 可能在 minute 前面,可能在 minute 后面,也可能根本没有。 如果楼主只是想要秒的时间的话可以这样DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); 回 khijfv2008:客户的电脑上时间格式不是定死的,我就是想要以不变应万变。就像系统通知栏那样的。 回 cyxif:我也想用正则,但是不知道怎么写 系统栏里什么时候会hour跑到minute后面去?固定就是hour:minute这种,DateTime.Now.Hour.ToString()+":"+DateTime.Now.Minute.ToString() 回 alldj:你把区域选项中的格式写成 mm:hh 刚去试了一下,任务栏中的时间格式是固定的,无论怎么改也不会变,不过以前的Windows版本(我用的是XP)可以设置一个叫做短时间格式的东西,任务栏中的碎段时间格式变。你为什么不用ShortTimePattern呢? 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); DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); 多谢大家,可是 ShortTimePattern 没有上午和下午显示,而 LongTimePattern 可以为以下形式:hh:mm:ss ttss hh:mm tttt hh:mmH:mm:ssH:mmss hh:mm ss以上岂能用简单的 substring(...,len(...)-3)或者直接用ToString("yyyy-MM-dd hh:mm:ss")来解决的。 区域时间里我看到的最后三位全是:ss的,并没有看到有设置hh:mm:ss tt的。 这种问题就算要解决也是很容易的,格式就那么几种,判断最后三位的状态后分两至三个case就能搞定了,有时没现成方法的时候就用死办法。 多谢各位,我搞定了,用正则: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)......虽然我正则是个菜鸟,但是至少也可以解决了。 关于ENABLE=FALSE后样式的修改 C#写winfrom运行某个功能的时候突然自己消失!! 求js拖动选项卡排序 权限管理排序遇到问题。求解答。 DataGridView控件怎么给DataGridViewComboBoxColumn赋值 asp.net 动态操作EXCEL的问题~!跟winform有很大区别! excel公式调用 用C#制作WinForm一對多,需設定那些屬性? DEV的treelist的内部拖拽问题,C# 第三次提问,怎么在C#编写的程序中实现XP效果 关于水晶报表问题 昨天面试那人问我这样一个问题!还真不知道他什么意思
把格式为:ss:H:mm:ss
系统就会把第一个ss后面:和第二个ss前面的:也给去掉了
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
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")来解决的。
string timeSeparator = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.TimeSeparator;
string pattern = string.Format("(?<value>([{0}\\s]*)s+([{0}\\s]*)*)[^s{0}]?", timeSeparator)
......
虽然我正则是个菜鸟,但是至少也可以解决了。