<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-67  評論-522  文章-0  trackbacks-0
        在數字電視領域,時間使用的是MJD(修正儒略日),而不是Java中的UTC(協調世界時),而工作中又需要將機頂盒端的MJD日期轉化為UTC日期,本篇是大象關于轉換的一點記錄。
        業務場景是這樣的,機頂盒通過TCP協議發送過來一串數據流,其中有一些其它數據,這個不管,在這其中有5個字節的日期(MJD)和時間(BCD),日期占2字節(年月日),時間是3字節(時、分、秒,每一個占1字節)。
        接收這些數據用的是byte[]數組,因此主要工作就是要將這些字節數據轉換成整形數據再進行處理,由于Javaint類型占4個字節,而MJD日期是用2字節表示,也就是說,要將2字節的byte[]轉換成16位的int值,所以要先寫一個轉換方法。
        /**
         * 將長度為2byte數組轉換為int
         */
        public static int bytes2ToInt(byte[] b) {
            int value = 0;
            for (int i = 0; i < 2; i++) {
                int shift = (1 - i) * 8;
                value += (b[i] & 0xFF) << shift;
            }
            return value;
        }

        b是長度2的數組,b[0]是高位,所以要將它左移8位,變成高8位,然后再與低8位的b[1]相加就是轉換后的MJD值。處理BCD時間就簡單了,每1個字節分別對應時分秒。比如:
        int h = data[offset++];
        int mi = data[offset++];
        int s = data[offset++];
        offset是偏移量,有了這些數據,接下來就可以轉換成UTC時間了,MJD轉年月日公式是現成的,請自行搜索。
        public static Date mjd2Date(int mjd, int h, int mi, int s) {
            int y, m, d, k;
            y = (int) ((mjd - 15078.2) / 365.25);
            m = (int) ((mjd - 14956.1 - (int) (y * 365.25)) / 30.6001);
            d = (int) (mjd - 14956 - (int) (y * 365.25) - (int) (m * 30.6001));
            if (m == 14 || m == 15)
                k = 1;
            else
                k = 0;
            y = y + k;
            m = m - 1 - k * 12;
            Calendar c = GregorianCalendar.getInstance();
            c.set(y + 1900, m - 1, d, h, mi, s);
            return c.getTime();

        }

        本文為菠蘿大象原創,如要轉載請注明出處。http://m.tkk7.com/bolo
    posted on 2015-05-20 17:08 菠蘿大象 閱讀(4736) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲一本之道高清乱码| 久久久久亚洲av毛片大| 亚洲欧洲视频在线观看| 国产亚洲免费的视频看| 国产亚洲人成网站观看| 免费国产午夜高清在线视频| 亚洲VA中文字幕不卡无码| 中文字幕乱码免费看电影| 国产亚洲精品国产| 日本片免费观看一区二区| 亚洲国产系列一区二区三区| 无码国产精品一区二区免费I6| 亚洲大成色www永久网址| 成人免费一区二区三区在线观看| 亚洲人成自拍网站在线观看| 国产小视频在线观看免费| 青青草国产免费国产是公开 | 日韩亚洲不卡在线视频中文字幕在线观看| 16女性下面无遮挡免费| 亚洲深深色噜噜狠狠网站| 国产精品免费小视频| 美女被免费网站91色| 精品无码一区二区三区亚洲桃色 | 亚洲成人黄色在线| 女人18毛片a级毛片免费视频| 国产亚洲美女精品久久| 亚洲国产综合无码一区| 日韩中文字幕精品免费一区| 亚洲色偷偷综合亚洲AV伊人蜜桃 | 无码乱人伦一区二区亚洲一| 性短视频在线观看免费不卡流畅| 久久精品国产亚洲AV未满十八| 国产亚洲精品久久久久秋霞| 猫咪免费人成网站在线观看| 妇女自拍偷自拍亚洲精品| 亚洲无人区午夜福利码高清完整版| 久久国产免费观看精品3| 亚洲码欧美码一区二区三区| 国产亚洲成AV人片在线观黄桃| 97在线线免费观看视频在线观看 | 嫖丰满老熟妇AAAA片免费看|