Why not use getUTCxxx() methods?
function formatUTC(time_UTC_in_milliseconds_since_epoch) {
    /*
     * author: WesternGun
     */
    var time = new Date(time_UTC_in_milliseconds_since_epoch);
    var formatted = time.getUTCFullYear() + "-" 
        + (time.getUTCMonth() + 1).toString() + "-" 
        + time.getUTCDate() + " " 
        + time.getUTCHours() + ":" 
        + time.getUTCMinutes() + ":" 
        + time.getUTCSeconds();
    return formatted;
}
Remember to add 1 to the month because the range of return value of getUTCMonth() is 0~11.
With your input, we have:
formatUTC(1367214805 * 1000); // return "2013-4-29 5:53:25"
To format the numbers into \d\d form, just create another function:
function normalizeNumber(input, toAdd) {
    if (parseInt(input) < 10) {
        return toAdd + input;
    } else {
        return input;
    }
}
And use it like normalizeNumber((time.getUTCMonth() + 1).toString(), "0"), etc.