Ben de bu soruna çözüm arıyordum, işte sonunda bulduğum şey:
function getTimeStr() {
var dt = new Date();
var d = dt.toLocaleDateString();
var t = dt.toLocaleTimeString();
t = t.replace(/\u200E/g, '');
t = t.replace(/^([^\d]*\d{1,2}:\d{1,2}):\d{1,2}([^\d]*)$/, '$1$2');
var result = d + ' ' + t;
return result;
}
Burada deneyebilirsiniz: http://jsfiddle.net/B5Zrx/
\ u200E, bazı IE sürümlerinde gördüğüm bazı biçimlendirme karakteridir (soldan sağa unicode işaretidir).
Biçimlendirilmiş zaman "XX: XX: XX" gibi bir şey içeriyorsa sanırım saniye ile zaman olmalı ve son parçayı kaldırıyorum, eğer bu kalıbı bulamazsam, hiçbir şey değişmez. Oldukça güvenli, ancak bazı garip durumlarda saniye ayrılma riski vardır.
Ben sadece biçimlendirilmiş zaman bölümlerinin sırasını değiştirecek hiçbir yerel olmadığını umuyoruz (örneğin ss: mm: ss yapmak). Bu soldan sağa işaret beni biraz gerginleştiriyor, bu yüzden sağdan sola işaretini kaldırmıyorum (\ u202E) - Bu durumda bir eşleşme bulmamayı ve bu durumda saniye ile biçimlendirilmiş zaman.