Lisää

Lasketaanko päivämääräkenttä tämän päivän päivämäärällä päivämäärästä date.date.today ()?

Lasketaanko päivämääräkenttä tämän päivän päivämäärällä päivämäärästä date.date.today ()?


Työskentelen sellaisen työkalun osassa, joka käyttää arcpy.CalculateField_management-ohjelmaa nykyisen päivämäärän lisäämiseksi määritetaulukkoon. Olen vaeltanut kaukana verkkoista, enkä näytä löytävän ratkaisua tähän asiaan.

Kun käytän tätä koodia, saan arvon "00:00:00 AM"

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

Käytettäessä tätä koodia saan arvon "06/19/1905" tämän päivän päivämäärästä "10/07/2014"

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

Onko sinulla ajatuksia siitä, mitä teen väärin? Haluaisin välttää päivityskohdistimen käyttöä, mutta teen sen, jos se on viimeinen vaihtoehto.


Päivitetty kohdistin suorittaa kenttälaskurin 100% ajasta.

Sinun on kirjoitettava tämä lausekkeena:

Tuo arcpy, päivämäärä fc = r'C:  GIS  CARGIS  SHAPES.gdb  CRASH_ON_2013 'field = "DTCARXTRCT" exp = "def add_date (): tuonti-ajan palautusaika.strftime ("% Y /% m /% d ")" arcpy.CalculateField_management (fc, field, 'add_date ()', 'PYTHON', exp) tulosta 'valmis'

datetime.date.today () ei toiminut kenttälaskurissa, vaihdettu strftime-tilaan.

TAI, jos haluat tehdä sen paremmalla tavalla, johon voit syöttää omia muuttujia, käytä kohdistinta:

tuo arcpy, päivämäärä fc = r'C:  GIS  CARGIS  SHAPES.gdb  CRASH_ON_2013 'field = "DTCARXTRCT" ja arcpy.da.UpdateCursor (fc, [kenttä]) rivinä: rivillä riville: rows.updateRow ([päivämäärä.päivä. tänään ()]) tulosta 'valmis'

Kokeile:

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

Päivämäärä-toiminto

Palauttaa a Vaihtoehto (Päivämäärä), joka sisältää nykyisen järjestelmän päivämäärän.

Aseta järjestelmän päivämäärä käyttämällä Päivämäärä lausunto.

Jos käytät Päivämäärä toiminto gregoriaanisen kalenterin kanssa, Päivämäärä $ on muuttumaton Kalenteri omaisuuden asetus. Jos kalenteri on Hijri, Päivämäärä $ palauttaa lomakkeen 10 merkin merkkijonon mm-dd-yyyy, missä mm (01-12), dd (01-30) ja yyyy (1400-1523) ovat Hijrin kuukausi, päivä ja vuosi. Vastaava gregoriaaninen alue on 1. tammikuuta 1980 - 31. joulukuuta 2099.


Päiväluokka

Kun tämän luokan objekti on instantioitu, se edustaa päivämäärää muodossa VVVV-KK-PP. Tämän luokan rakentaja tarvitsee kolme pakollista argumenttia, vuosi, kuukausi ja päivämäärä.

Rakentajan syntaksit:

Argumenttien on oltava seuraavalla alueella & # 8211

  • MINYEAR & lt = vuosi & lt = MAXYEAR
  • 1 & lt = kuukausi & lt = 12
  • 1 & lt = päivä & lt = päivien lukumäärä tiettynä kuukautena ja vuonna

Merkintä & # 8211 Jos argumentti ei ole kokonaisluku, se nostaa TypeError-arvon ja jos se on alueen ulkopuolella, ValueError korotetaan.


Käytä kaavoissa päivämäärä, päivämäärä / aika ja aikatyyppejä

Yksi päivämäärän arvojen yksinkertaisimmista käyttötavoista on löytää päivien lukumäärä kahden päivämäärän välillä. Kun vähennät yhden päivämäärän arvon toisesta, saat päivien eron lukuna.

Vähennä tulevista päivämääristä vain aikaisempia päivämääriä. Jos käännät kaavan - DATEVALUE (CreatedDate) - TODAY () - se palauttaisi negatiivisen arvon.

Huomaa, että käytimme DATEVALUE () -toimintoa muuntamaan CreatedDate, päivämäärä / aika-arvon päivämääräarvoksi, jolloin voimme vähentää CreatedDate-arvon TODAY (): sta. Päivämäärä ja päivämäärä / aika eivät ole yhteensopivia. Et voi vähentää päivämäärää päivämäärästä / kellonajasta tai päivämäärää / kellonaikaa päivämäärästä muuntamatta ensin yhtä arvoista.

Voit myös lisätä päiviä päivämäärään. Luo kaava, joka palauttaa päivämäärän kolme päivää tämän päivän jälkeen:

  1. Käytä Asennus-sovelluksessa pikahaku-ruutua Object Manager.
  2. Klikkaus Tili | Kentät ja vahvistussuhteet ja napsauta Uusi.
  3. Valitse Kaava ja napsauta Seuraava.
  4. Sisään Kentän otsikko, kirjoita Tuleva päivämäärä. Kentän nimi täyttyy automaattisesti.
  5. Valitse Päivämäärä ja napsauta Seuraava.

Melko yksinkertainen, eikö? Asiat muuttuvat hieman monimutkaisemmiksi, kun haluat lisätä työpäiviä päivämäärään. Tässä kaavassa käytämme CASE () -toimintoa lisäämällä 3 arkipäivää TÄNÄÄN (). CASE () on jollain tavalla samanlainen kuin IF (). Tärkein ero on, että IF () tarkistaa vain yhden loogisen lauseen, kun taas CASE () käy läpi joukon lauseita, joita kutsutaan tapauksiksi.

CASE (lauseke, tapaus1, tulos1, tapaus2, tulos2,., Muu_tulos) vertaa lauseketta tapaukseen1. Jos ne ovat yhtä suuret, se palauttaa tuloksen1. Jos ne eivät ole, se vertaa lauseketta tapaukseen2 ja niin edelleen. Jos lauseke ei vastaa missään tapauksessa, lause palauttaa else_result.

CASE () on hyödyllinen ehdollisille lausunnoille, joilla on monia mahdollisia tuloksia. Vaikka voit yleensä tehdä saman asian sisäkkäisillä IF () -lausekkeilla, CASE () tekee monimutkaisista kaavoista helpommin luettavissa ja ymmärrettäviä.

Aiomme kirjoittaa CASE (): lla kaavan, joka lisää 3 arkipäivää TÄNÄÄN (). Ensimmäinen askel työskennellessäsi CASE: n () kanssa on ajatella tapauksia. Kaavamme voisi kohdata muutamia erilaisia ​​tilanteita:

  • Jos TÄNÄÄN () on sunnuntai, maanantai tai tiistai, kolmen arkipäivän lisääminen on sama kuin TÄNÄÄN () + 3.
  • Jos TÄNÄÄN () on keskiviikko, torstai tai perjantai, kolmen arkipäivän lisääminen on sama kuin TÄNÄÄN () + 5 (3 arkipäivää ja 2 viikonloppupäivää).
  • Jos TÄNÄÄN () on lauantai, kolmen arkipäivän lisääminen on sama kuin TÄNÄÄN () + 4 (3 arkipäivää ja yksi viikonloppupäivä).

Jotta kaava toimisi, meidän on tiedettävä mikä viikonpäivä TÄNÄÄN () on. Käytä viikonpäivää WEEKDAY () -toiminnolla.

Voit lisätä tämän kaavan muunnelmia päivämäärään minkä tahansa työpäivän määrän. Riippumatta siitä, kuinka monta arkipäivää lisäät, on enintään seitsemän tapausta, yksi kutakin viikonpäivää kohti.

Voit suorittaa matemaattisia toimintoja myös aika-arvoilla.

Aika-arvojen lisäämisen tai vähentämisen yksikkö on millisekuntia.

Kun Timefield1__c: n arvo on 17:00:

Aikakentät eivät sisällä päivämäärää. Joten 25 tunnin lisääminen aika-arvoon on sama kuin 1 tunnin lisääminen. Kello käynnistyy uudelleen 24 tunnin kuluttua.

Muista, että kun kaavassa voidaan vähentää yksi aikakenttä toisesta, tulos on millisekunteina ja tulos on ei koskaan negatiivinen luku.

Seuraavina aikoina saat seuraavat tulokset.

ClosedTime = 17:00, OpenTime = 8:00, ClosedTime - OpenTime on 9 tuntia.

ClosedTime = 5:00 AM, OpenTime = 7:00 AM, ClosedTime - OpenTime on 22 tuntia.


Python Nykyinen päivämäärä ja aika: nyt () tänään ()

Vaihe 1) Kuten päivämääräobjekteja, voimme käyttää myös "AIKA-KOHTEET" Pythonissa. Python-päivämäärä- ja aikaobjektit antavat päivämäärän yhdessä kellonajan kanssa tuntia, minuuttia, sekuntia ja millisekuntia.

Kun suoritamme koodin päivämääräajalle, se antaa lähdölle nykyisen päivämäärän ja kellonajan.

Vaihe 2) "DATETIME OBJECT" -toiminnon avulla voit myös soittaa aikaluokkaan.

  • Olimme tuoneet aikaluokan. Määritämme sille ajan nykyisen arvon käyttämällä datetime.now ()
  • Määritämme nykyisen ajan arvon muuttujalle t.

Ja tämä antaa minulle vain aikaa. Joten ajetaan tämä ohjelma.

Okei, joten näet, että täällä sain päivämäärän ja kellonajan. Ja sitten seuraava rivi, minulla on vain aika yksin

  • Viikonpäivien operaattorille (wd) annetaan numero (0-6) -numerosta sen mukaan, mikä kuluva viikonpäivä on. Täällä ilmoitimme luettelon päivistä (ma, ti, ke ... su).
  • Käytä tätä indeksiarvoa tietääksesi, mikä päivä se on. Meidän tapauksessamme se on # 2, ja se edustaa keskiviikkoa, joten tulosteessa se tulostaa "Mikä on keskiviikko".

Tässä on täydellinen koodi, jolla saat nykyisen päivämäärän ja kellonajan käyttämällä päivämäärää nyt

Tässä on täydellinen koodi, jolla saat nykyisen päivämäärän ja kellonajan käyttämällä päivämäärää nyt


Korjaa päivämäärämuodon ongelmat

Kun vähennät kaksi päivämäärää Excelissä, tulos näytetään usein toisena päivämääränä numerona. Näin tapahtuu, jos kaavan sisältävä solu alustettiin Yleisenä ennen kaavan syöttämistä.

Koska kaava sisältää päivämääriä, Excel muuttaa solumuodoksi päivämäärän. Esimerkin solu A7 näyttää solun, joka on alustettu päivämääräksi. Se sisältää väärää tietoa. Jos haluat nähdä kaavan tuloksen numerona, solun muodoksi on asetettava takaisin Yleinen tai Numero:

Korosta solu tai solut väärällä muotoilulla.

Napsauta hiiren kakkospainikkeella korostettuja soluja avataksesi pikavalikon.

Valitse Alusta solut avaa Muotoile solut -valintaikkuna.

Valitse Määrä välilehti näyttää muotoiluvaihtoehdot.

Valitse Luokka-osiossa Kenraali.

Valitse OK sulje valintaikkuna ja palaa laskentataulukkoon.


Lasketaanko päivämääräkenttä tämän päivän päivämäärällä päivämäärästä date.date.today ()? - maantieteelliset tietojärjestelmät

Käytä otetta. Lisätietoja on kohdassa Pura tietosi.

Vaihtoehto 2:

Esimerkki 1:

  • Muunna UTC PST: ksi (Tyynenmeren normaaliaika), kaava: NYT()
  • Voi tulla: DATEADD (& # 39tunti & # 39, -8, NYT ())

merkintä: Kesäajan aikana UTC: n ja PDT: n välinen aikaero on -7 tuntia.

Esimerkki 2:

Muunna UTC PST: ksi (Tyynenmeren normaaliaika) suhteellisen päivämäärän suodattimelle:

  1. Poista päivämääräsuodatin Suodattimet-hyllystä
  2. Valitse Analyysi & gt Luo laskettu kenttä
  3. Tee avautuvassa Laskettu kenttä -valintaikkunassa seuraava ja valitse sitten OK:
    • Nimeä laskettu kenttä. Tässä esimerkissä lasketun kentän nimi on & quot Viimeisten 3 päivän suodatin & quot
    • Luo kaavakenttään seuraavanlainen laskelma:

[Päivämääräkenttä] & gt = DATEADD (& # 39day & # 39, -3, DATEADD (& # 39hour & # 39, -8, TODAY ()))

Syy

Kun yhdistät suoraa yhteyttä, Tableau Desktop kysyy tietolähdettä NOW () tai TODAY (). Jos tietolähdettä isännöidään koneella eri aikavyöhykkeellä, tietolähde voi palauttaa ajan kyseisellä aikavyöhykkeellä.

Suorat yhteydet Redshiftiin ja PostgreSQL: iin on suunniteltu palauttamaan UTC-aika johtuen epäjohdonmukaisuuksista siitä, miten nämä tietolähteet käsittelevät päivämäärä- ja aikavyöhykesiirtymiä.

Lisäinformaatio

Voit ilmaista tukesi tämän parannuksen sisällyttämiselle tulevaan tuotejulkaisuun lisäämällä äänesi seuraavaan yhteisöideaan: Aikavyöhykkeen muuntamisen tuki.


Määrittimet

Määrittimet alkavat aina prosenttimerkillä (%), jota seuraa kirjainkoko. Tietojen on sisällettävä vähintään kaksinumeroinen vuosi.

Rajoitus 6-numeroisilla päivämäärillä
Koska vuodelle luetaan enintään 4 numeroa, formaatit, joissa on tarkoitus olla vain 2 numeroa ilman erotinta, kuten 6-numeroinen päiväysleima (esimerkiksi% y% m% d tiedoille, jotka muistuttavat 170522 22. toukokuuta, 2017), luetaan edelleen nelinumeroisena. Voit kiertää tämän rajoituksen voit.

  • Käytä vuodelle 4 numeroa (esimerkiksi 2017 17 sijasta) päivämääräalueesi mukaan.
  • Lisää välilyönti merkkijonon kahden ensimmäisen numeron jälkeen RegEx-työkalulla.

Python DateTime-muoto

Alustus on prosessi, jossa määritetään näytettävien elementtien asettelu. Python DateTime-muotoilu on merkkijono, jolla elementit, kuten päivä, kuukausi, vuosi, tunti, minuutit ja sekunnit, näytetään merkkijonossa.

Esimerkiksi päivämäärän näyttäminen PP-KK-VVVV on muoto, ja päivämäärän näyttäminen KK-PP-VVVV on toinen muoto.

Tässä opetusohjelmassa opitaan, kuinka DateTime-objektin avulla luodaan vaaditun muodon päivämäärä- ja aikamerkkijono käyttämällä datetime.datetime.strftime (). Ja tietysti käytämme treffiaika kirjasto tässä opetusohjelmassa.

DateTime-muotoiluun käytämme strftime () -toimintoa päivämääräobjektissa. strftime () on lyhenne merkkijonon muotoajasta.

Syntaksi - strftime ()

Seuraavassa on strftime () -funktion syntaksia.

muoto on merkkijono, joka kuvaa määritetyn muodon muotoon strftime () -toiminto päivämäärän ja kellonajan luomiseen datetime.datetime esine.

strftime () funktio palauttaa alustetun treffiaika merkkijonona annettujen perusteella muoto.

Alusta koodit

Seuraava on luettelo muotoilukoodeista, joita käytämme muotoillessamme merkkijonoa päivämääräobjektista strftime () -toiminnon avulla.

  • % Y - edustaa vuotta [0001,…, 2018, 2019,…, 9999]. Nelinumeroinen merkkijono.
  • % m - edustaa kuukautta [01, 02,…, 11, 12]. Kaksinumeroinen merkkijono.
  • % d - edustaa kuukauden päivää [01, 02,…, 30, 31]. Kaksinumeroinen merkkijono.
  • % H - edustaa vuorokauden tuntia [00, 01,…, 22, 23]. Kaksinumeroinen merkkijono.
  • % M - edustaa minuutin minuutteja [00, 01,…, 58, 59]. Kaksinumeroinen merkkijono.
  • % S - edustaa minuutin minuutteja [00, 01,…, 58, 59]. Kaksinumeroinen merkkijono.

Nämä muotoilukoodit, jos ne on määritelty muoto, korvataan vastaavilla arvoilla, jotka ovat läsnä datetime.datetime esine. Opimme paljon näistä seuraavissa esimerkkiohjelmissa.

Python DateTime - Format Date & amp Time - dd / mm / YYYY HH: MM: SS

Seuraavassa ohjelmassa opitaan päivämäärän muotoileminen muodossa pp / kk / VVVV HH: KK: SS. dd tarkoittaa päivää merkitään kaksinumeroisella merkkijonolla, mm on kuukausi kaksinumeroisella merkkijonolla, VVVV on vuosi edustettuna nelinumeroisella merkkijonolla, HH on tuntia edustettuna kaksinumeroisella merkkijonolla, MM on minuutteja ja SS on sekunteja.

Muoto merkkijono olisi "% D /% m /% Y% H:% M:% S". Mitä strfime () -funktio tekee, se korvaa % d kaksinumeroisella merkkijonolla datetime.datetime-objektille, korvaa % m korvataan kaksinumeroisella kuukauden edustuksella % Y tämän datetime.datetime-objektin vuoden nelinumeroisella esityksellä ja niin edelleen muotoilukoodien mukaisesti.

Python-ohjelma

Python DateTime-muoto - kk / pp / VVVV

Seuraavassa ohjelmassa opitaan päivämäärän muotoileminen muodossa kk / pp / VVVV. mm on kuukausi kaksinumeroisella merkkijonolla, dd merkitsevä päivä, jota edustaa kaksinumeroinen merkkijono ja VVVV on vuosi edustettuna nelinumeroisella merkkijonolla.

Muoto merkkijono olisi "% M /% d /% Y".

Python-ohjelma

Python DateTime-muoto - pp / kk / VVVV

Seuraavassa ohjelmassa opitaan päivämäärän muotoileminen muodossa pp / kk / VVVV. dd tarkoittaa päivää, jota edustaa kaksinumeroinen merkkijono, mm on kuukausi kaksinumeroisella merkkijonolla ja VVVV on vuosi edustettuna nelinumeroisella merkkijonolla.

Muoto merkkijono olisi "% D /% m /% Y".

Python-ohjelma

Python DateTime-muoto - kk-pp-VVVV

Seuraavassa ohjelmassa opitaan päivämäärän muotoileminen muodossa kk-pp-VVVV. mm on kuukausi kaksinumeroisella merkkijonolla, dd merkitsevä päivä, jota edustaa kaksinumeroinen merkkijono ja VVVV on vuosi edustettuna nelinumeroisella merkkijonolla.

Muoto merkkijono olisi "% M-% d-% Y".

Python-ohjelma

Python DateTime-muoto - pp-kk-VVVV

Seuraavassa ohjelmassa opitaan päivämäärän muotoileminen muodossa pp-kk-VVVV. dd merkitsevä päivä, jota edustaa kaksinumeroinen merkkijono, mm on kuukausi kaksinumeroisella merkkijonolla ja VVVV on vuosi edustettuna nelinumeroisella merkkijonolla.

Muoto merkkijono olisi "% D-% m-% Y".

Python-ohjelma

Python DateTime-muoto - HH: MM: SS

Tässä esimerkissä opitaan kuinka muotoilla aika HH: MM: SS datetime-objektilla. Käytämme% H: tä kahden tunnin esitykseen tunneista datetime-objektista,% M: tä kahden minuutin numeroiden esityksestä päivämäärä-objektista ja% S: tä sekuntien kaksinumeroiseen esitykseen päivämäärä-objektista.

Python-ohjelma

Python DateTime - Format Time - MM: SS

Tässä esimerkissä opitaan kuinka muotoilla aika MM: SS: ksi datetime-objektilla. Käytämme% M: tä päivämääräobjektin minuuttien kaksinumeroiseen esitykseen ja% S: ää päivämääräobjektin sekuntien kaksinumeroiseen esitykseen.

Python-ohjelma

Johtopäätös

Tämän Python-opetusohjelman päätteeksi opimme kuinka muotoilla päivämääräobjekti vaatimuksemme mukaan. Esitetyt esimerkit selittävät muotoilukoodien käytön, mutta eivät rajoitu niihin. Voit käyttää muotoilukoodeja ja luoda oman muodon päivämäärä- ja aikamerkkijonolle.


Gregoriaaninen kalenteri vs. ISO 8601 -standardi

Jos käytät .hyper-otetta, päivämäärätoiminnot voidaan laskea käyttämällä perinteistä gregoriaanista kalenteria tai ISO 8601 -standardia. Lisätietoja .hyper-otteen luomisesta, katso Pura päivitys .hyper-muotoon (Linkki avautuu uudessa ikkunassa)

ISO 8601 -muoto on kansainvälinen päivämäärien ja aikojen laskentastandardi, joka poikkeaa gregoriaanisesta kalenterista vuoden aloitusviikon (viikko 1) laskemisesta johtuen. Gregoriaanisen kalenterissa käyttäjä voi määrittää, mistä päivästä viikko alkaa. ISO 8601 -standardin mukaan viikko alkaa aina maanantaina.

Gregoriaanisessa kalenterissa uuden vuoden alkaessa vuoden viikko 1 lasketaan alkavan 1. tammikuuta riippumatta siitä, missä arkipäivänä 1. tammikuuta tapahtuu. Jos 1. tammikuuta tulee lauantaina, viikolla 1 on yksi päivä ja viikko 2 alkaa seuraavana sunnuntaina.

ISO 8601 -muodossa uuden vuoden viikko 1 alkaa maanantaina ja sillä on vähintään neljä päivää tammikuussa. Esimerkiksi, jos 1. tammikuuta tulee lauantaina, viikko 1 alkaa vasta seuraavana maanantaina 3. tammikuuta. Laskemalla päivämäärät tällä tavalla varmistetaan, että uuden vuoden viikolla 1 on tasainen määrä päiviä.

Lisätietoja ISO 8601 -päivämäärien käsittelystä on artikkelissa ISO-8601 Viikkopohjainen kalenteri (Linkki avautuu uuteen ikkunaan).


Päivämäärän muuntaminen

Merkki päivämäärään

Voit käyttää kuten päivämäärä ( ) -toiminto muuntaa merkkitiedot päivämääriksi. Muoto on kuten päivämäärä (x, & quotformat & quot), missä x on merkkitiedot ja muoto antaa sopivan muodon.

# muunna päivämäärätiedot muodossa 'kk / pp / vvvv'
strDates & lt- c (& quot01 / 05/1965 & quot; & quot08 / 16/1975 & quot)
päivämäärät & lt - kuten päivämäärä (strDates, & quot% m /% d /% Y & quot)

Oletusmuoto on vvvv-kk-pp

Päivämäärä merkkiin

Voit muuntaa päivämäärät merkkitiedoiksi käyttämällä kuten merkki () toiminto.

# muuntaa päivämäärät merkkitiedoiksi
strDates & lt- as.character (päivämäärät)