包日期用十六进制java

时间:2014-03-26 16:13:46

标签: arrays byte bit-manipulation android-calendar

目前正在使用Java开发Android应用程序,需要以NDEF格式在NFC上发送当前时间和日期数据。 NDEF消息需要以原始十六进制格式发送数据。为了充分利用接收设备的有限空间和有限的计算能力,我选择将年份作为一个字节发送(年份数减去2000;即2014年= 14,因此该设备有效期为255年...... )。获得特定日期的最简单方法是抓住DAY_OF_YEAR并分成两个字节。当烤到屏幕上时,我似乎根本得不到正确答案。以下是评论的最低工作示例。

  final Calendar c = Calendar.getInstance();         //grab an instance of calendar
        int year = c.get(Calendar.YEAR)-2000;              //get the year, and subtract 2000
        char[] bday = new char[2];                         //create a 2 byte character array for the day number
        byte byear= (byte) year;                           //convert int year to a single byte
        int day = c.get(Calendar.DAY_OF_YEAR);             //get the day of the year
        Toast.makeText(MenuActivity.this, "" + day, Toast.LENGTH_LONG).show();  //Toast the day int, for debugging
        bday[0] = (char) day;                              //get the LSB of day int
        bday[1] = (char) (day>>>8);                        //get the MSB of day int

        String date = "y"+ byear "d" + bday[1] + bday[0];  //Toast the year (fine), and day (not right)

0 个答案:

没有答案