2013-05-03 3 views
0

У меня есть приложение Google map, которое отображает данные из XML-файла. Когда вы наводите курсор на что-то, он возвращает некоторую информацию, включая данные. Дата из файла XML, как это ...Преобразование datestamp из файла XML

<cap:expires>2013-05-02T00:00:00-05:00</cap:expires> 

У меня есть этот кусок кода, который преобразует его ....

function dateFromString(s) { 

    var bits = s.split(/[-T:+]/g); 
    var d = new Date(bits[0], bits[1]-1, bits[2]); 
    d.setHours(bits[3], bits[4], bits[5]); 

    // Get supplied time zone offset in minutes 
    var offsetMinutes = bits[6] * 60 + Number(bits[7]); 
    var sign = /\d\d-\d\d:\d\d$/.test(s)? '-' : '+'; 

    // Apply the sign 
    offsetMinutes = 0 + (sign == '-'? -1 * offsetMinutes : offsetMinutes); 

    // Apply offset and local timezone 
    d.setMinutes(d.getMinutes() - offsetMinutes - d.getTimezoneOffset()) 

    // d is now a local time equivalent to the supplied time 
return (d); 

} 

var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; 
var months =['January','February','March','April','May','June','July','August','September','October','November','December']; 
var ampm = " am"; 

var dt = (dateFromString("yyyy-MM-dd'T'HH:mm:ssZ")); 
var yr = dt.getFullYear(); 
var mth = dt.getMonth(); // months in Javascript are 0-11 so May is month 4 
mth = months[mth]; 
var dte = dt.getDate(); 
var dy = dt.getDay(); // days are 0-6 
dy = days[dy]; 
var hrs = dt.getHours(); 
var h1 = hrs; 
var mins = dt.getMinutes(); 

if (hrs >= 12) {ampm = " pm"} 
if (hrs >= 13) {hrs = hrs - 12} 
if (h1 == 0) {hrs = 12} 

if (hrs <10) {hrs = "0" + hrs}; // if leading zero desired 
if (mins <10) {mins = "0" + mins}; 

var dtstring = dy + " " + mth + " " + dte + " " + yr + " " + hrs + ":" + mins + ampm; 

который прекрасно работает, когда вы жесткий код этого он преобразует его ,

var dt = (dateFromString('2013-05-02T11:08:00-6:00')); 

Моя проблема в том, как и где я могу вставить элемент из XML, чтобы он знал, что нужно преобразовать? Я настроил его на вывод, я просто не уверен, куда помещать входные данные для его преобразования. Я включил ссылки как на карту, так и на файл xml, если кто-то должен увидеть полный код, чтобы увидеть, как он настроен.

DEMO MAP

DEMO XML

+0

Спасибо, но где я могу вставить элемент из XML-файла, который нужно преобразовать? Как я уже сказал, я не владею Js и вряд ли использую его. -Благодаря – Texan78

ответ

0

Существует специальный класс в Java, чтобы иметь дело с XML DATETIME javax.xml.datatype.XMLGregorianCalendar

XMLGregorianCalendar xgc = DatatypeFactory.newInstance().newXMLGregorianCalendar("2013-05-02T00:00:00-05:00"); 

Теперь использовать свои методы, чтобы получить необходимые поля. Вы также можете преобразовать его в GregorianCalendar и Date