Генерация дат XML со времен эпохи Unix - PullRequest
0 голосов
/ 25 февраля 2011

Я хотел бы сгенерировать файл XML с каждой третьей датой до заданной даты (например, 10 июня), начиная с эпохи Unix, в 3 часа дня по Гринвичу.Нравится:

<timestamps>
    <timestamp time="1246000000" text="2011-06-10 15:00:00" />
</timestamps>

Спасибо!Мне нужно это в PHP!

Ответы [ 3 ]

1 голос
/ 25 февраля 2011

Не уверен, что я полностью понимаю ваш вопрос, но вот код, который генерирует то, что, я думаю, вы хотите. Отправить в метку времени (секунды с начала эпохи).

<?php

function generateXML($end_time){
    $three_days = 3 * 24 * 3600;

    echo "<timestamps>\n";
    for ($stamp = 15 * 60 * 60; $stamp < $end_time; $stamp += $three_days){
        $text = date('Y-m-d H:i:s', $stamp);
        echo "<timestamp time=\"$stamp\" text=\"$text\" />\n";
    }
    echo "</timestamps>";
}

# up to now: 
generateXML(time());
?>
0 голосов
/ 25 февраля 2011

Ниже приведен код (вы можете немного его улучшить, но вы поняли).

import java.util.*;
import java.lang.*;

class Main
{
        public static void main (String[] args) throws java.lang.Exception
        {
        String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
java.text.SimpleDateFormat sdf = 
      new java.text.SimpleDateFormat(DATE_FORMAT);

                Calendar c=Calendar.getInstance();
                c.setTimeInMillis(0);//reset to epoch
                System.out.println(c.getTime());

                Date d=new Date(1970,6,10);
                Calendar inputDate=Calendar.getInstance();
                inputDate.setTime(d);

                while(c.before(inputDate))
                {
                c.add(Calendar.DATE,3);
                System.out.println(sdf.format(c.getTime()));
                }

        }
}

Пример запуска здесь

0 голосов
/ 25 февраля 2011

#!/usr/bin/python
import time
unixtime, datestring = 15 * 60 * 60, ''
while datestring < '2011-06-10 15:00:00':
 datestring = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(unixtime))
 print '<timestamps>'
 print '    <timestamp time="%s" text="%s" />' % (unixtime, datestring)
 print '</timestamps>'
 unixtime += (60 * 60 * 24 * 3)
...