2016-03-19 37 views
0

インド、カナダ、米国の日付と時刻が表示されています。時刻と日付が正しく表示されています。 3カ国で同じタイムゾーン(GMT +5:30)を取得しています。ここでタイムゾーンが正しく機能しない

India ------ Date IST. 
Canada ------ Date PST. 
USA ------ Date PST. 

のための私のロジック

public void getDate(String timeZoneId) { 
    String selectedId = timeZoneId; 
    TimeZone timezone = TimeZone.getTimeZone(selectedId); 
    TimeZoneName = timezone.getDisplayName(); 
    Log.v("TimeZoneName","TimeZoneName "+TimeZoneName); 
    int TimeZoneOffset = timezone.getRawOffset() 
     /(60 * 1000); 
    int hrs = TimeZoneOffset/60; 
    int mins = TimeZoneOffset % 60; 
    miliSeconds = miliSeconds + timezone.getRawOffset(); 
    resultdate = new Date(miliSeconds); 
    dateInCountry=sdf.format(resultdate); 
    miliSeconds = 0; 
} 

private void getGMTTime() { 
    current = Calendar.getInstance(Locale.ENGLISH); 
    miliSeconds = current.getTimeInMillis(); 
    TimeZone tzCurrent = current.getTimeZone(); 
    int offset = tzCurrent.getRawOffset(); 
    if (tzCurrent.inDaylightTime(new Date())) { 
     offset = offset + tzCurrent.getDSTSavings(); 
    } 
    miliSeconds = miliSeconds - offset; 
    resultdate = new Date(miliSeconds); 
    System.out.println(sdf.format(resultdate)); 
} 

getGMTTime(); 
getDate("Asia/Calcutta"); 
final SimpleDateFormat formatter = new SimpleDateFormat("MMM dd yyyy hh:mm:ss a "); 
indTime.setText("Current Time " + String.valueOf(formatter.format(resultdate)) + TimeZoneName.substring(0,3)); 

getGMTTime(); 
getDate("Canada/Pacific"); 
final SimpleDateFormat canadaFormatter = new SimpleDateFormat("MMM dd yyyy hh:mm:ss a ",Locale.CANADA); 
canadaTime.setText("Current Time " + String.valueOf(canadaFormatter.format(resultdate)) + TimeZoneName); 
canadaTime.setTypeface(titleType); 

getGMTTime(); 
getDate("US/Pacific"); 
final SimpleDateFormat usaFormatter = new SimpleDateFormat("MMM dd yyyy hh:mm:ss a ", Locale.US); 
usaTime.setText("Current Time " + String.valueOf(usaFormatter.format(resultdate)) + TimeZoneName); 

ているよう実は私は、異なるタイムゾーンを取得する必要があります私は正しくなく、

Ind  Mar 19 13:28:40 GMT+05:30 2016 

Canada XXX XX XX:XX:XX GMT+05:30 2016 

USA  XXX XX XX:XX:XX GMT+05:30 2016 

はあなたが私はどこを伝えることができる時間帯を日付と時刻を取得しています私は間違っている?

ありがとうございます。

+0

出力があなたが示したコードに対応していないようです。コードでは、フォーマッタは12時間形式を使用しますが、出力は24時間形式です。出力に "Current time"という単語が含まれていない場合、その年は非常に奇妙なものになります。最後の3つの4行ブロックが実行されたコードからはわかりません(そのためのメソッドはありません)。実行したコードと出力を正確に表示できますか? –

+0

私の質問は、どのように異なるタイムゾーンを取得するのでしたか – Sanjeev

+0

本当のコードと実際の出力がなくても、どうすればそれに答えることができますか? –

答えて

0
あなたはタイムゾーンが

最終のSimpleDateFormatフォーマッタ=新しいてSimpleDateFormat( "MMM DD YYYYのは、hh:mm:ssのZを")

を印刷得るために、次のように使用することができます

関連する問題