Mais

Calculando o campo de data com a data de hoje datetime.date.today ()?


Estou trabalhando em parte da ferramenta que usará arcpy.CalculateField_management para adicionar a data atual à tabela de atributos. Eu vaguei por muito tempo nas interwebs e não consigo encontrar a solução para este problema.

Ao usar este código, obtenho o valor "12:00:00 AM"

input = r'C:  GIS  CARGIS  SHAPES.gdb  CRASH_ON_2013 'today = datetime.date.today () dte = today.strftime ('% m /% d /% Y ') arcpy.CalculateField_management (input, " DTCARXTRCT ", dte," PYTHON ")

Ao usar este código, obtenho o valor "19/06/1905" a partir da data de hoje de "07/10/2014"

input = r'C:  GIS  CARGIS  SHAPES.gdb  CRASH_ON_2013 'today = datetime.date.today () dte = str (today) arcpy.CalculateField_management (input, "DTCARXTRCT", dte, "PYTHON")

Alguma ideia do que estou fazendo de errado? Eu gostaria de evitar o uso do cursor de atualização, mas farei isso se for a última opção.


Um Cursor de atualização executará a calculadora de campo 100% do tempo.

Você precisa escrever isso como uma expressão:

import arcpy, datetime fc = r'C:  GIS  CARGIS  SHAPES.gdb  CRASH_ON_2013 'field = "DTCARXTRCT" exp = "def add_date (): tempo de importação return time.strftime ("% Y /% m /% d ")" arcpy.CalculateField_management (fc, field, 'add_date ()', 'PYTHON', exp) print 'done'

datetime.date.today () não funcionou na calculadora de campo, mudou para strftime.

OU, se você quiser fazer isso da melhor maneira em que pode inserir suas próprias variáveis, use um cursor:

import arcpy, datetime fc = r'C:  GIS  CARGIS  SHAPES.gdb  CRASH_ON_2013 'field = "DTCARXTRCT" com arcpy.da.UpdateCursor (fc, [field]) como linhas: para linha em linhas: rows.updateRow ([datetime.date.today ()]) imprimir 'concluído'

Tente usar:

time.strftime ("% Y /% m /% d")

Função de Data

Retorna um Variante (Data) contendo a data atual do sistema.

Para definir a data do sistema, use o Data demonstração.

Se você usar o Data função com um calendário gregoriano, o comportamento de Data $ é inalterado pelo Calendário definição de propriedade. Se o calendário for islâmico, Data $ retorna uma string de 10 caracteres do formulário milímetros-dd-aaaa, Onde milímetros (01-12), dd (01-30) e aaaa (1400-1523) são o mês, dia e ano islâmico. O intervalo gregoriano equivalente é de 1º de janeiro de 1980 a 31 de dezembro de 2099.


Aula de encontro

Quando um objeto desta classe é instanciado, ele representa uma data no formato AAAA-MM-DD. O construtor desta classe precisa de três argumentos obrigatórios ano, mês e data.

Sintaxe do construtor:

Os argumentos devem estar no seguinte intervalo & # 8211

  • MINYEAR & lt = year & lt = MAXYEAR
  • 1 & lt = mês & lt = 12
  • 1 & lt = dia & lt = número de dias em determinado mês e ano

Observação & # 8211 Se o argumento não for um inteiro, ele gerará um TypeError e, se estiver fora do intervalo, um ValueError será gerado.


Use os tipos de data, data / hora e hora nas fórmulas

Um dos usos mais simples para valores de data é encontrar o número de dias entre duas datas. Quando você subtrai um valor de Data de outro, obtém a diferença em dias como um número.

Tenha cuidado para subtrair apenas datas passadas de datas futuras. Se você inverter a fórmula - DATEVALUE (CreatedDate) - TODAY () - ela retornaria um valor negativo.

Observe que usamos DATEVALUE () para converter CreatedDate, um valor Date / Time, em um valor Date, permitindo subtrair CreatedDate de TODAY (). Os valores de data e data / hora não são compatíveis. Você não pode subtrair uma data de uma data / hora, ou uma data / hora de uma data, sem primeiro converter um dos valores.

Você também pode adicionar dias a uma data. Para criar uma fórmula que retorna uma data três dias após a de hoje:

  1. Em Configuração, use a caixa de localização rápida para encontrar o Gerente de Objeto.
  2. Clique Conta | Campos e relacionamentos e clique Novo.
  3. Selecione Fórmula e clique em Próximo.
  4. Dentro Legenda do campo, insira a data futura. O nome do campo é preenchido automaticamente.
  5. Selecione Data e clique Próximo.

Muito simples, certo? As coisas ficam um pouco mais complexas quando você deseja adicionar dias úteis a uma data. Para esta fórmula, usamos a função CASE () para adicionar 3 dias úteis a TODAY (). CASE () é semelhante a IF () em alguns aspectos. A principal diferença é que IF () verifica apenas uma instrução lógica, enquanto CASE () passa por uma série de instruções, chamadas de casos.

CASE (expressão, caso1, resultado1, caso2, resultado2,., Outro_resultado) compara a expressão com caso1. Se eles forem iguais, ele retorna o resultado1. Se não forem, ele compara a expressão ao caso 2 e assim por diante. Se a expressão não corresponder a nenhum caso, a instrução retornará else_result.

CASE () é útil para declarações condicionais que têm muitos resultados possíveis. Embora você geralmente possa fazer a mesma coisa com instruções IF () aninhadas, CASE () torna fórmulas complicadas mais fáceis de ler e entender.

Vamos usar CASE () para escrever uma fórmula que adiciona 3 dias úteis a TODAY (). A primeira etapa ao trabalhar com CASE () é pensar em casos. Nossa fórmula pode encontrar algumas situações diferentes:

  • Se TODAY () for domingo, segunda ou terça-feira, adicionar 3 dias úteis é o mesmo que TODAY () + 3.
  • Se TODAY () for uma quarta, quinta ou sexta-feira, adicionar 3 dias úteis é o mesmo que TODAY () + 5 (3 dias úteis e 2 dias de fim de semana).
  • Se TODAY () for um sábado, adicionar 3 dias úteis é o mesmo que TODAY () + 4 (3 dias úteis e 1 dia de fim de semana).

Para que nossa fórmula funcione, temos que saber que dia da semana HOJE () é. Use a função WEEKDAY () para encontrar o dia da semana.

Você pode usar variações desta fórmula para adicionar qualquer número de dias úteis a uma data. Não importa quantos dias úteis você esteja adicionando, há no máximo sete casos, um para cada dia da semana.

Você também pode realizar operações matemáticas em valores de tempo.

A unidade para adicionar ou subtrair valores de tempo é milissegundos.

Quando Timefield1__c tem o valor 5:00 PM:

Os campos de tempo não incluem uma data. Portanto, adicionar 25 horas a um valor de tempo é o mesmo que adicionar 1 hora. O relógio reinicia após 24 horas.

Lembre-se, como você pode subtrair um campo de tempo de outro em uma fórmula, o resultado está em milissegundos e o resultado é Nunca um número negativo.

E, nas próximas vezes, você obterá os seguintes resultados.

ClosedTime = 5:00 PM, OpenTime = 8:00 AM, ClosedTime - OpenTime é 9 horas.

ClosedTime = 5:00 AM, OpenTime = 7:00 AM, ClosedTime - OpenTime é 22 horas.


Data e hora atuais do Python: agora () hoje ()

Passo 1) Como objetos de data, também podemos usar "DATETIME OBJECTS" em Python. Objetos de data e hora em Python fornecem data e hora em horas, minutos, segundos e milissegundos.

Quando executamos o código para datetime, ele fornece a saída com a data e hora atuais.

Passo 2) Com "DATETIME OBJECT", você também pode chamar a classe de tempo.

  • Tínhamos importado a classe de tempo. Estaremos atribuindo a ele o valor atual de tempo usando datetime.now ()
  • Estamos atribuindo o valor da hora atual à variável t.

E isso vai me dar apenas o tempo. Então, vamos rodar este programa.

Ok, então você pode ver que aqui eu tenho a data e a hora. E então a próxima linha, eu tenho apenas o tempo por si só

  • O operador de dias da semana (wd) recebe o número de (0-6) dependendo do dia da semana atual. Aqui, declaramos a matriz da lista para os dias (Seg, Ter, Qua ... Dom).
  • Use esse valor de índice para saber em que dia é. No nosso caso, é o nº 2 e representa a quarta-feira, portanto, na saída imprimirá "Que é uma quarta-feira."

Aqui está o código completo para obter a data e hora atuais usando datetime now

Aqui está o código completo para obter a data e hora atuais usando datetime now


Corrigir problemas de formato de data

Ao subtrair duas datas no Excel, o resultado geralmente é exibido como outra data em vez de um número. Isso acontece se a célula que contém a fórmula foi formatada como Geral antes de a fórmula ser inserida.

Como a fórmula contém datas, o Excel altera o formato da célula para Data. A célula A7 no exemplo mostra uma célula que foi formatada como uma data. Ele contém as informações erradas. Para ver o resultado da fórmula como um número, o formato da célula deve ser definido de volta para Geral ou Número:

Realce a célula ou células com a formatação incorreta.

Clique com o botão direito nas células destacadas para abrir o menu de contexto.

Selecione Formatar celulas para abrir a caixa de diálogo Formatar células.

Selecione os Número guia para exibir as opções de formatação.

Na seção Categoria, escolha Em geral.

Selecione OK para fechar a caixa de diálogo e retornar à planilha.


Calculando o campo de data com a data de hoje datetime.date.today ()? - Sistemas de Informação Geográfica

Use um extrato. Para obter mais informações, consulte Extrair seus dados.

Opção 2:

Exemplo 1:

  • Para converter UTC em PST (Horário padrão do Pacífico), a fórmula: AGORA()
  • Poderia se tornar: DATEADD (& # 39horas & # 39, -8, AGORA ())

Observação: Durante o horário de verão, a diferença de horário entre UTC e PDT será de -7 horas.

Exemplo 2:

Para converter UTC em PST (Horário padrão do Pacífico) para um filtro de data relativa:

  1. Remova o filtro de data da prateleira Filtros
  2. Selecione Análise & gt Criar Campo Calculado
  3. Na caixa de diálogo Campo Calculado que é aberta, faça o seguinte e clique em OK:
    • Nomeie o campo calculado. Neste exemplo, o campo calculado é denominado & quotFiltro dos últimos 3 dias & quot
    • No campo de fórmula, crie um cálculo semelhante ao seguinte:

[Date Field] & gt = DATEADD (& # 39day & # 39, -3, DATEADD (& # 39hour & # 39, -8, TODAY ()))

Causa

Ao se conectar ao vivo, o Tableau Desktop consulta a fonte de dados para NOW () ou TODAY (). Se a fonte de dados estiver hospedada em uma máquina em um fuso horário diferente, a fonte de dados poderá retornar a hora nesse fuso horário.

As conexões ao vivo para Redshift e PostgreSQL são projetadas para retornar a hora UTC devido a inconsistências em como essas fontes de dados lidam com deslocamentos de data / hora e fuso horário.

Informação adicional

Para expressar seu apoio à inclusão deste aprimoramento em uma versão futura do produto, adicione seu voto à seguinte ideia da comunidade: Suporte à conversão de fuso horário.


Especificadores

Os especificadores sempre começam com um sinal de porcentagem (%), seguido por uma letra que diferencia maiúsculas de minúsculas. Os dados devem incluir pelo menos um ano de dois dígitos.

Limitação com datas de 6 dígitos
Como são lidos até 4 dígitos para o ano, formatos que devem ter apenas 2 dígitos sem um separador, como um carimbo de data de 6 dígitos (por exemplo,% y% m% d para dados semelhantes a 170522 para 22 de maio, 2017), ainda são lidos como 4 dígitos. Para contornar essa limitação, você pode.

  • Use 4 dígitos para o ano (por exemplo, 2017 em vez de 17), dependendo do seu intervalo de datas.
  • Use a ferramenta RegEx para inserir um espaço após os 2 primeiros dígitos da string.

Formato Python DateTime

A formatação é um processo no qual você define o layout dos elementos para exibição. A formatação Python DateTime é o processo de geração de uma string com a forma como os elementos como dia, mês, ano, hora, minutos e segundos são exibidos em uma string.

Por exemplo, exibir a data como DD-MM-AAAA é um formato e exibir a data como MM-DD-AAAA é outro formato.

Neste tutorial, aprenderemos como usar o objeto DateTime para criar uma string de data e hora do formato necessário usando datetime.datetime.strftime (). E, claro, vamos usar data hora biblioteca neste tutorial.

Para formatar DateTime, usaremos a função strftime () no objeto datetime. strftime () é a abreviação de tempo de formato de string.

Sintaxe - strftime ()

A seguir está a sintaxe da função strftime ().

formato é uma string que descreve o formato especificado para strftime () função para criar string de data e hora a partir de datetime.datetime objeto.

strftime () função retorna formatado data hora como string com base no dado formato.

Códigos de formato

A seguir está a lista de códigos de formato que usamos ao formatar uma string do objeto datetime usando a função strftime ().

  • % Y - representa o ano [0001,…, 2018, 2019,…, 9999]. String de quatro dígitos.
  • % m - representa o mês [01, 02, ..., 11, 12]. Sequência de dois dígitos.
  • % d - representa o dia do mês [01, 02, ..., 30, 31]. Sequência de dois dígitos.
  • % H - representa a hora do dia [00, 01, ..., 22, 23]. Cadeia de caracteres de dois dígitos.
  • % M - representa o minuto da hora [00, 01, ..., 58, 59]. String de dois dígitos.
  • % S - representa o segundo do minuto [00, 01, ..., 58, 59]. Sequência de dois dígitos.

Esses códigos de formato, se especificados no formato, serão substituídos por seus valores correspondentes presentes em datetime.datetime objeto. Aprenderemos muito sobre isso nos programas de exemplo a seguir.

Python DateTime - Formato de data e hora - dd / mm / AAAA HH: MM: SS

No programa a seguir, aprenderemos como formatar data como dd / mm / AAAA HH: MM: SS. dd significa dia representado por uma string de dois dígitos, mm é o mês representado por uma string de dois dígitos, YYYY é o ano representado por uma string de quatro dígitos, HH é as horas representadas por uma string de dois dígitos, MM é para minutos e SS é para segundos.

A string de formato seria “% D /% m /% Y% H:% M:% S”. O que a função strfime () faz é isso, ela substitui % d com a string de dois dígitos para o dia do objeto datetime.datetime, substitui % m com representação de dois dígitos do mês, substitui % Y com a representação de quatro dígitos do ano deste objeto datetime.datetime e assim por diante, de acordo com os códigos de formato.

Programa Python

Formato Python DateTime - mm / dd / AAAA

No programa a seguir, aprenderemos como formatar data como mm / dd / AAAA. milímetros é o mês representado por uma string de dois dígitos, dd significando dia representado por uma string de dois dígitos e AAAA é o ano representado por uma string de quatro dígitos.

A string de formato seria “% M /% d /% Y”.

Programa Python

Formato Python DateTime - dd / mm / AAAA

No programa a seguir, aprenderemos como formatar data como dd / mm / AAAA. dd significando dia representado por uma string de dois dígitos, milímetros é o mês representado por uma sequência de dois dígitos e AAAA é o ano representado por uma string de quatro dígitos.

A string de formato seria “% D /% m /% Y”.

Programa Python

Formato Python DateTime - mm-dd-AAAA

No programa a seguir, aprenderemos como formatar data como mm-dd-AAAA. milímetros é o mês representado por uma string de dois dígitos, dd significando dia representado por uma string de dois dígitos e AAAA é o ano representado por uma string de quatro dígitos.

A string de formato seria “% M-% d-% Y”.

Programa Python

Formato Python DateTime - dd-mm-AAAA

No programa a seguir, aprenderemos como formatar data como dd-mm-AAAA. dd significando dia representado por uma string de dois dígitos, milímetros é o mês representado por uma string de dois dígitos e AAAA é o ano representado por uma string de quatro dígitos.

A string de formato seria “% D-% m-% Y”.

Programa Python

Formato Python DateTime - HH: MM: SS

Neste exemplo, aprenderemos como formatar a hora como HH: MM: SS usando o objeto datetime. Usaremos% H para a representação de dois dígitos de horas do objeto datetime,% M para a representação de dois dígitos de minutos do objeto datetime e% S para a representação de dois dígitos de segundos do objeto datetime.

Programa Python

Python DateTime - Formato de hora - MM: SS

Neste exemplo, aprenderemos como formatar o tempo como MM: SS usando o objeto datetime. Usaremos% M para a representação de dois dígitos de minutos do objeto datetime e% S para a representação de dois dígitos de segundos do objeto datetime.

Programa Python

Conclusão

Concluindo este Tutorial Python, aprendemos como formatar o objeto datetime de acordo com nosso requisito. Os exemplos apresentados explicam o uso de códigos de formato, mas não estão limitados a. Você pode usar os códigos de formato e criar seu próprio formato para a string de data e hora.


Calendário Gregoriano vs. Padrão ISO 8601

Se você estiver usando uma extração .hyper, as funções de data podem ser calculadas usando o calendário gregoriano tradicional ou o padrão ISO 8601. Para obter mais informações sobre como criar uma extração .hyper, consulte Atualizar para o formato .hyper (o link é aberto em uma nova janela)

O formato ISO 8601 é um padrão internacional para calcular datas e horas que difere do calendário gregoriano devido ao modo como a semana inicial de um ano (semana 1) é calculada. No Calendário Gregoriano, o usuário pode definir em que dia da semana começa. No padrão ISO 8601, a semana sempre começa na segunda-feira.

Em um calendário gregoriano, quando um novo ano começa, a semana 1 do ano é contada como começando em 1º de janeiro, independentemente de onde ocorre no dia da semana 1º de janeiro. Se 1º de janeiro cair em um sábado, a semana 1 terá um dia e a semana 2 começará no domingo seguinte.

No formato ISO 8601, a semana 1 de um novo ano começa em uma segunda-feira e tem quatro ou mais dias em janeiro. Por exemplo, se 1º de janeiro cair em um sábado, a Semana 1 não começará até a segunda-feira seguinte, 3 de janeiro. O cálculo das datas dessa forma garante que haja um número consistente de dias na semana 1 de um novo ano.

Para obter mais informações sobre como trabalhar com datas ISO 8601, consulte Calendário semanal ISO-8601 (o link é aberto em uma nova janela).


Conversão de Data

Caráter até à data

Você pode usar o as.Date ( ) função para converter dados de caracteres em datas. O formato é as.Date (x, & quotformatar & quot), Onde x são os dados do personagem e formato fornece o formato apropriado.

# converter informações de data no formato 'mm / dd / aaaa'
strDates & lt-c (& quot01 / 05/1965 & quot, & quot08 / 16/1975 & quot)
datas & lt- as.Date (strDates, & quot% m /% d /% Y & quot)

O formato padrão é aaaa-mm-dd

Data para o personagem

Você pode converter datas em dados de caracteres usando o as.Character () função.

# converter datas em dados de caracteres
strDates & lt- as.character (datas)