Alterando a Timezone do Ubuntu pelo terminal

Este final de semana migrei o And After, O Desenvolvedor, Eu Compraria e Eu Compraria! Shop do meu servidor "cloud" da Locaweb para o EC2 da Amazon, um cloud de verdade (está saindo um post com dicas para uma migração bem sucedida).

Nossa loja de produtos geeks tem um sistema que depende do horário do servidor para exibição específica de produtos, e ontem a @biab notou um comportamento estranho:, eu havia esquecido de configurar a data e hora do servido para GMT -3 (horário de Brasília).

A troca do timezone é bem simples, seguindo minhas experiências com configuração de servidor no Ubuntu (instalando o memcache e instalando o nodeJs), resolvi criar um post com essa informação:

 

Configurando a data e hora do Ubuntu pelo terminal

A informação de qual timezone deve ser usado pelo sistema fica em /etc/timezone, então para editar essa informação digite no terminal:

sudo vi /etc/timezone

É um arquivo de texto que contém a chave de qual 

timezone será utilizada pelo Ubuntu, apague o que estiver lá e digite o 

timezone que você quiser. No meu caso (São Paulo) o 

timezone é "America/Sao_Paulo" (sem as aspas). Feita a alteração salve o arquivo de texto.

sudo dpkg-reconfigure --frontend noninteractive tzdata

Feito isso seu sistema já estará utilizando o novo timestamp – no meu caso foi necessário reiniciar o Apache para que ele também utilizasse o novo timestamp configurasse, se você tem serviços que dependem da configuração de hora verifique se não é necessário reiniciar para eles atualizarem a hora do sistema.

 

Lista de timestamps para Ubuntu

Para descobrir qual a "string" do seu timestamp digite o comando abaixo:

 ls /usr/share/zoneinfo/

O comando irá listar todas as "areas" de timezone. Um dos itens é America por exemplo, para listar os timestamps da America, incremente o comando acima com:

ls /usr/share/zoneinfo/America

E para buscar por um timestamp específico (por exemplo, "Paulo") digite:

 

ls /usr/share/zoneinfo/America | grep Paulo

Com essas informações você consegue buscar o caminho de qualquer timezone do mundo para inserir no /etc/timezone

 

 

Referência

Ubuntu Time

Formatação de datas – Java

Ontem eu estava apanhando para fazer formatação de data no Velocity (leia o que é Velocity?) para um template e antes de implementar uma POG com vários elseif´s, pedi uma ajuda para o Chris para saber se já existia alguma classe ou função disponível para formatação de datas em texto (em número já estava funcionando).

Danger!

Antecipo que qualquer coisa relacionada a Java ainda é uma novidade para mim, escrevi este post baseado na documentação da Sun (de uma classe) mas mesmo assim caso tenha alguma bobagem no conteúdo comentem, a internet está aí para possibilidades de correção e melhoria do conteúdo! 😉

O Chris me enviou um ótimo link de referência sobre a classe SimpleDateFormat do Java (me corrijam se estiver errado), que como o nome diz é para formatação de datas.

Não acho necessário a tradução da tabela, o funcionamento é simples: ao chamar a função para formatar data você segue os padrões indicado pela primeira coluna, que irá retornar o elemento indicado pela segunda coluna.

 

Letter Date or Time Component Examples
G Era designator AD
y Year 1996; 96
M Month in year July; Jul; 07
w Week in year 27
W Week in month 2
D Day in year 189
d Day in month 10
F Day of week in month 2
E Day in week Tuesday; Tue
a Am/pm marker PM
H Hour in day (0-23) 0
k Hour in day (1-24) 24
K Hour in am/pm (0-11) 0
h Hour in am/pm (1-12) 12
m Minute in hour 30
s Second in minute 55
S Millisecond 978
z Time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone -0800

 Tabela  da classe SimpleDateFormat (site da Sun)

 

Dicas para formatação e exibição das datas

Ainda existe algumas dicas para selecionar como será exibido o resultado, por extenso, número ou texto. Segue uma explicação rápida e algumas dicas para formatar e exibir a data:

Texto

Para formatar o texto, se a letra do padrão se repetir 4 vezes ou mais, a forma completa é utilizada, caso contrário a forma abreviada é exibida (se existir).

Número

Para a formatação, o número de repetição da letra padrão (primeira coluna da tabela) indica o número mínimo de dígitos do número, as casas que "faltaram" são preenchidas com zeros.

Year (ano)

Para a formatação, 2 repetições da letra truncam o ano para 2 dígitos.

Mês

Se a letra repetir por 3 vezes ou mais é exibido como texto, caso contrário como número.

 

 

Exemplos

Acho que a formatação de data é complicada de explicar, mas com exemplos -> resultados prontos fica masi fácil, então segue uma tabelinha que utiliza os padrões SimpleDateFormat.

Date and Time Pattern Result
"yyyy.MM.dd G "at" HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ""yy" Wed, Jul 4, "01
"h:mm a" 12:08 PM
"hh "o""clock" a, zzzz" 12 o"clock PM, Pacific Daylight Time
"K:mm a, z" 0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ" 010704120856-0700

 Tabela  da classe SimpleDateFormat (site da Sun)

 

É isso, espero ter ajudado! Para mais informações sobre formatação de data no Java leia a documentação completa da classe citada neste post.

Rapazes espertos namoram em paralelo

Segue abaixo um texto beeeem divertido sobre relacionamentos.
Observação: para nerds!
Se lembrar das aulas de elétrica na escola vai ajudar um bocado!

Existem poucas pessoas na minha vida que eu admiro mais do que meu pai. Meu pai foi quem me ensinou a nadar, me mostrou o primeiro programinha feito em Basic, a duras penas me ensinou álgebra quanto eu estava no colegial quando eu me confundia com todos aqueles métodos confusos que meu professor me ensinava, e me demonstrava o valor da solução de um problema quando eu estava em situações de stress (por exemplo, me deixava preso na cadeirinha de crianças no carro quando eu tinha 4 anos). Eu ainda corro até ele quando preciso de conselho, apoio ou – mesmo – uma boa risada.
 

As pessoas que me conhecem sabem que eu odeio o Dia dos Namorados. Em partes porque é uma época em que eu fico amargo, mas também porque eu não entendo a razão do dia 14 de Fevereiro (N.T.: nos EUA, o Dia dos Namorados, ou Valentine´s Day, pe comemorado nessa data) ser um dia em que tudo parece ser doce e fofo. É um dia que foi criado por empresas que fazem aqueles cartões de presentes e as floriculturas possam faturar no intervalo entre o Natal e o Dia das Mães. Vá por mim: se você quiser ser realmente romântico, faça algo fora dessa data, aleatoriamente, quando ele(a) menos esperar.

Alguns dias atrás eu estava no telefone com o meu pai, falando que seria o quinta ano seguido que passaria o Dia dos Namorados sozinho. Meu pai, como sempre, ouviu tudo que eu tinha a dizer e, após refletir, me explicou o que eue stava fazendo errado nos meus relacionamentos.

O problema, segundo ele, é que eu namoro garotas serialmente.

Lisa sucking out your soul with 28Ω resistance

Vamos adotar que V é a diferença de potencial entre sair com garotas e fazer coisas produtivas; I sendo a corrente do amor, e I a corrente desse fluxo. O problema com encontros seriais é o mesmo que ocorre com circuitos elétricos seriais. Se a resitência comeca a crescer, você está ferrado: como V = I.R, e R está crescendo, é necessário que I diminua oara continuar a igualdade. Pior ainda, já que P=I.V: você não terá a mesma potência com o aumento dessa resistência. E as coisas ainda são piores do que parecem: como só há um caminho para a corrente passar por todos os relacionamentos, você acabará gastando mais energia no relacionamento com a maior resistência, o que vai totalmente contra aquilo que você quer fazer.

E para finalizar, o horror dos horrores: se você terminar um dos relacionamentos, toda a corrente pára até que você manualmente concerte as coisas. Sua vida amorosa estará arruinada – pelo menos por instantes.

Time to get magazines from the sympathetic gas station attendant

Agora vamos examinar o caso em que você namora múltiplas garotas em paralelo.

Coulomb

Muito antes de tentarmos os (mais complicados, admito) cálculos, já podemos de antemão falar que a situação melhorou consideravelmente. Como estamos namorando em paralelo, compensamos a mais alta resistência; como resultado da conservação de energia, você gasta menos energia para os ramos que possuem a maior resistência, e foca diretamente nos ramos de menor resistência. Antes, Lisa sugava a maior parte de nossas energias; agora, Sally e Judy o fazem!

Um circuito aberto não mais nos eprturba. No caso de um dos relacionamentos acabar do nada (e vamos convir que Lisa não está ajudando em nada), ainda temos chances com os demais ramos! Melhor de tudo: como Lisa era o ramo com a maior resistência, sua sumida vai afetar muito pouco a corrente da rede!

Lisa: out of the loop

E com essa simples metáfora, eu me senti muito melhor sobre as coisas que rolam na minha vida atualmente. Pais são maravilhosos 🙂

Em resumo: namorar serialmente é para bobos. Se você quer realmente ter um sistema livre de falhas, ser menos afetado pela resistência, e ter um incrível aumento na corrente dos seus namoros, parta para os relacionamentos em paralelo. É a única saída!

UPDATE: esse é um texto traduzido e não reflete o pensamento do autor do post (não 100% pelo menos!). E o termo namorar foi o melhor encontrado para o (do inglês) date, mas o sentido não é o mesmo.