如何从JavaScript或c#中删除日期/时间字符串中的秒数?

时间:2012-10-15 22:32:57

标签: c# javascript

我可以选择使用JavaScript或c#来完成此任务。

我有很多字符串格式为“10/14/2012 8:45:34 PM” 如何删除秒并保留PM,如此“10/14/2012 8:45 PM”?

我不能使用子字符串,因为每个日期和时间字符串的长度都不同。

6 个答案:

答案 0 :(得分:10)

在C#中,你可以这样做:

myTime.ToString("MM/dd/yyyy hh:mmtt");

或者,您可以使用内置的Format Specifiers here

修改 - 我删除了mmtt之间的空格,因为我发现您的帖子显示8:45PM。如果您希望它mm,则可以在tt8: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(),'')