我可以选择使用JavaScript或c#来完成此任务。
我有很多字符串格式为“10/14/2012 8:45:34 PM” 如何删除秒并保留PM,如此“10/14/2012 8:45 PM”?
我不能使用子字符串,因为每个日期和时间字符串的长度都不同。
答案 0 :(得分:10)
在C#中,你可以这样做:
myTime.ToString("MM/dd/yyyy hh:mmtt");
或者,您可以使用内置的Format Specifiers
here。
修改 - 我删除了mm
和tt
之间的空格,因为我发现您的帖子显示8:45PM
。如果您希望它mm
,则可以在tt
和8:45 PM
之间添加空格。
答案 1 :(得分:3)
如果字符串格式一致,则:
var s = '10/14/2012 8:45:34 PM';
s = s.replace(/:\d+ (\w\w)$/, '$1'); // 10/14/2012 8:45PM
我希望这只会被非常有限的观众使用,因为这种形式会被绝大多数人误解。更广泛理解且更不明确的格式是:
2012-10-14 8:45PM
答案 2 :(得分:2)
您可以使用正则表达式。
C#:
string d = "10/14/2012 8:45:34 PM";
d = Regex.Replace(d, @":\d\d ", String.Empty);
使用Javascript:
var d = "10/14/2012 8:45:34 PM";
d = d.replace(/:\d\d /, '');
答案 3 :(得分:1)
您可以使用正则表达式进行字符串操作,而且非常简单。
var mydate = "10/14/2012 8:45:34 PM";
var formated_date = mydate.replace(/(\d{1,2})\/(\d{1,2})\/(\d{4})\ (\d{1,2}):(\d{1,2}):(\d{1,2})\ (.*)/, "$1/$2/$3\ $4:$5$7");
document.write(formated_date);
答案 4 :(得分:0)
好吧,你可以试试:
var string="10/14/2012 8:45:34 PM";
var resultArray = string.split(":");
var result = string.replace(resultArray[2],"");
应该在javascript中有效工作。在一秒钟内测试它,并更新它。
更新:
var string="10/14/2012 8:45:34 PM";
var resultArray = string.split(":");
var result = string.replace(":"+resultArray[2]," ")+resultArray[2].split(" ")[1];
有点难过。但它的工作正常:http://jsfiddle.net/x8uUW/
使用正则表达式进行更新(我使用了正则表达式生成器,因此它无论如何都不是那么紧凑。但它确实有效:http://jsfiddle.net/x8uUW/1/
答案 5 :(得分:0)
我尝试在Axure JavaScript中使用ToString()
来设置小部件的文本,但是失败了,Axure中的正则表达式是不可能的(至少在我发布这个时),所以我想出了另一个简单的替代方案,但效率低下的方法:
aDate.toLocaleTimeString().replace(':'+aDate.getSeconds(),'')