2016-03-28 13 views
1

こんにちは私はUTCのタイムスタンプを持っており、ISTフォーマットに変換する必要があります 私はMSC(テレコム基地局) string : 1307261822062B0530の問題は、私はのように怒鳴るUTCのタイムスタンプを解析してJavaの別のフォーマットに変換する方法

public static String formatRawTimeStamp(String rawTimeStamp){ 

     String[] arr_msisdn = rawTimeStamp.split("(?<=\\G.{2})"); // split every two character 
     String formatedDate = ""; 
     Date date; 
     DateFormat srcFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss.ssZ"); 
     DateFormat desFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

     if(arr_msisdn.length >= 6){ 

     try { 

      date = (Date)srcFormat.parse(arr_msisdn[0]+"-"+arr_msisdn[1]+"-"+arr_msisdn[2]+" "+arr_msisdn[3]+":"+arr_msisdn[4]+":"+arr_msisdn[5]+"."+arr_msisdn[6]+""+arr_msisdn[7]+""+arr_msisdn[8]); 
      formatedDate = desFormat.format(date); 

     } catch (ParseException e) { 

      e.printStackTrace(); 
     } 
     } 

     return formatedDate; 
    } 
を解析しようとしています受信普遍的な時間を追加したり、上減算する

を符号(+/-)を変換さ

13 07 26 18 22 06 2B 05 30 

yy = 13 
MM = 07 
DD = 26 
hh = 18 
mm = 22 
ss = 06 
S = 2B (how do iconvert this value into +/-) 
hh = 05 
mm = 30 

怒鳴るように、除算することができ

しかし、私は例外に

java.text.ParseException: Unparseable date: "13-07-30 18:45:11.2b0530" 
    at java.text.DateFormat.parse(DateFormat.java:354) 
    at org.bouncycastle.asn1.util.ASNUtil.formatRawTimeStamp(ASNUtil.java:199) 
    at org.bouncycastle.asn1.util.MOCallEvent.decode(MOCallEvent.java:187) 
    at org.bouncycastle.asn1.util.ZTEASN1DecodeApp.decode(ZTEASN1DecodeApp.java:114) 
    at org.bouncycastle.asn1.util.ZTEASN1DecodeApp.main(ZTEASN1DecodeApp.java:80) 

を取得していますが、それはどのように私はこの問題を解決することができ、符号(+/-)

S = Sign 0 = “+”, “-“  ASCII encoded 

を示す"2b"値を解析することができない聞きます。どんな助けもありがとう。

答えて

2

なぜ構文解析する前に文字を置き換えるだけですか?

String input = "1307261822062B0530"; 
String adjusted = input.replaceAll("2[Bb]", "+").replaceAll("2[Aa]", "-"); 

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyMMddHHmmssZ"); 
OffsetDateTime odt = OffsetDateTime.parse(adjusted, fmt); //2013-07-26T18:22:06+05:30 

私は、入力が-ため+2Aまたは2aため2Bまたは2bを含めることができることを想定しています。

単純な形式を使用する場合は、同じロジックを適用できます。

+0

は、どのような記号2B/2Aが、 –

+0

と表示されているかを正確に識別/変換する方法はありますか?私はこのリンクを見ただけです。https://docs.newrelic.com/docs/apis/rest-api -v2/requirements/specify-time-range-v2#utc –

+0

助けてくれてありがとうございます –

関連する問題