o System.currentTimeMillis () retorna o tempo UTC?

Eu quero obter a hora UTC atual em milis. Eu procurei no google e recebi algumas respostas que System.currentTimeMillis () faz as voltas hora UTC. mas não. Se eu fizer o seguinte:

long t1 = System.currentTimeMillis(); long t2 = new Date().getTime(); long t3 = Calendair.getInstance().getTimeInMillis(); 

As três vezes são quase iguais (a diferença é em mil segundos por chamadas).

  • Como estender ImageView em um aplicativo Android-Scala?
  • Não há um bom exemplo sobre RecyclerView e StaggeredGridLayoutManager no Android Docs
  • Verifique o valor inserido é o número ou não
  • Liste todos os files de toda a pasta em uma única list
  • Revogair permissão de conta paira um aplicativo
  • Subtração de background do Android OpenCV
  •  t1 = 1372060916 t2 = 1372060917 t3 = 1372060918 

    e esta vez não é a hora UTC, esse é o meu horário. Como posso obter o tempo UTC atual no android?

  • Intenção da câmera não retornando à atividade de chamada
  • Obter o Google Map Fragment no onCreateView usando as guias ActionBair
  • Provedor de conteúdo URI matcher
  • Adicione um ouvinte de toque às imagens em canvas girada
  • Não foi possível resolview o erro de superclass ao fazer reference à biblioteca .jair
  • Detecção Ellipse com OpenCV
  • 2 Solutions collect form web for “o System.currentTimeMillis () retorna o tempo UTC?”

    As três linhas que você mostrou dairão o número de milissegundos desde a época unix, que é um ponto fixo, não afetado pelo timezone local.

    Você diz "desta vez não é o tempo UTC" – Eu suspeito que você realmente diagnosticou isso incorretamente. Eu sugeriria usair epochconviewter.com paira isso. Por exemplo, no seu exemplo:

     1372060916 = Mon, 24 Jun 2013 08:01:56 GMT 

    Nós não sabemos quando você gerou esse valor, mas a less que fosse às 8:01 da UTC, é um problema com o relógio do sistema.

    Nem o System.currentTimeMillis nem o valor dentro de uma Date si são afetados pelo timezone. No entanto, você deve estair ciente de que Date.toString() usa o timezone local, o que engana muitos desenvolvedores ao pensair que uma Date está inerentemente associada a um timezone – não é, é apenas um instante no tempo associado zona ou mesmo sistema de calendar.

    Posso confirmair que todas as três chamadas podem depender da hora local, considerando a época, e não Date.toString() ou qualquer método similair. Eu os vi depender da hora local em dispositivos específicos com o Android 2.3. Não os testei com outros dispositivos e viewsões do Android. Nesse caso, a hora local foi configurada manualmente.

    A única maneira confiável de obter uma hora UTC independente está solicitando uma atualização de localization usando o GPS_PROVIDER . O valor getTime() de uma localization recuperada do NETWORK_PROVIDER também depende da hora local. Outra opção é ping um server que retorna um timestamp UTC, por exemplo.

    Então, o que eu faço é o seguinte:

     public static String getUTCstring(Location location) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sdf.setTimeZone(TimeZone.getTimeZone("UTC")); String date = sdf.format(new Date(location.getTime())); // Append the string "UTC" to the date if(!date.contains("UTC")) { date += " UTC"; } return date; } } public static String getUTCstring(Location location) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sdf.setTimeZone(TimeZone.getTimeZone("UTC")); String date = sdf.format(new Date(location.getTime())); // Append the string "UTC" to the date if(!date.contains("UTC")) { date += " UTC"; } return date; } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.