Vyvojari.sk na Facebooku
Správičky 2 187 Blogy 556 Fórum 13 473

Zaujímavosti zo sveta

23.02 Kyberkriminálníkem snadno a ry…
Počítačová bezpečnost prakticky: zabezpečení dat v klidu, zabezpečení dat v pohybu a anonymní připojení k Internetu. Témata dnes možná ještě…
22.02 TryJoinads (IV.) - Concurrency…
Join calculus provides a declarative way of expressing asynchronous synchronization patterns. It has been use as a basis for programming la…
22.02 Pozvánka: Windows 8 Hackathon …
vyvojar
Uvedení Windows 8 Consumer Preview se blíží (29.2.2012), a proto jsme již nyní naplánovali několik běhů Windows 8 Hackathonů, na které bycho…
22.02 Update rollup 6 pro Exchange S…
blogCZSK
Update Rollup 6 pro Exchange Server 2007 Service Pack 3 (SP3) je k dispozici na Microsoft Download centru. Řeší problém…
22.02 Pozvánka na akci: Bezpečné web…
Nikdy jsem se nebál platit kartou na Internetu, dokud jsem nebyl nucen z klientské strany implementovat komunikaci s platebními bránami. Pot…
21.02 Internet of Things s FEZ Panda…
vyvojar
Pojem Internet of Things byl poprvé použit v roce 1999 a jeho původní význam je označení sítě jednoznačně identifikovatelných objektů (RFID,…
21.02 Záznam a prezentace z šestého …
blogCZSK
V tomto dílu vás Pavel Řepa seznámil se Service Managerem 2012, nástrojem, jehož hlavním úkolem je…
21.02 GeekCore – nová verze a zdrojá…
Znáte tu situaci, kdy uživateli přehledně vysvětlíte, že jeho feature request je sice rozumná, ale příliš náročná na implementaci a přes noc…
20.02 Extrémní velikost databáze slu…
mazin
Před časem jsem řešil problém, kdy databáze služby Import uživatelských profilů měla velikost přes 21GB. To je na profily cca 150 členů domé…
20.02 TryJoinads (III.): Agent-based…
Another area where the match! syntax can be used is when programming with F# agents, implemented by the MailboxProcessor type. Formally, ag…
20.02 Soužití Office 365 a BlackBerr…
blogCZSK
V první dílu Office 365 akademie jste se mimo jiné ptali, jak je na tom Office 365 s podporou mobilních zař&iacu…
20.02 ASP.NET MVC 4 Beta
ScottGu
A few days ago we released the ASP.NET MVC 4 Beta.  This is a significant release that brings with it a bunch of great new features and…
17.02 TryJoinads (II.): Task-based p…
The implementation of joinad operations for the Task<'T> type is quite similar to the implementation of Async<'T>, because the…
17.02 Co IT týden dal: havárie a bři…
blogCZSK
Kanty> Tak jsem si dnes ráno zadělal na menší infarkt. Abyste plně pochopili hloubku mého hrůzného pro…
17.02 Update Rollup 2 pro rodinu Win…
blogCZSK
Před několika dny Microsoft vydal souhrnnou opravu Update Rollup 2 pro všechny systémy patřící do rodiny Windows…
16.02 Odkazy z prohlížeče – 16.2.201…
atasoft
CodeProject Stop Watch application for Windows Phone 7 Learning XNA 2d Engine IceCream With 1945 Demo Project C# Language Features…

Reakcie

# # 11. 1. 2012 20:38:42 Siro

Super správička, len by ma zaujímalo:

- keď dostanem DateTime s UtcNow, mám o hodinu menej. Otázka, keď pridám 1 hodinu - malo to byť podľa nášho časového pásma, alebo nie? Dátum som nikdy poriadne nerozumel, je čas sa na to pozrieť.

# @siro 11. 1. 2012 22:21:37 liero

@siro: ano, je to tak, akurat ako vies, kolko mas pridat? :) zalezi od toho, v akej casovej zone sa nachadzas.

ked do databazy ukladas datetime.now, tak na roznych serveroch to moze byt rozny cas, ake ked tam budes davat datetime.utcnow, tak to bude vzdy ten isty

# uff 11. 1. 2012 22:28:51 vlko

Uff, chlapi, nerobte hanbu. UTC je cas s informaciou o casovej zone. Ci je utc zistite cez Kind http://msdn.microsoft.com/en-us/library/system.datetime.kind.aspx a na lokalny potom convert cez ToLocalTime http://msdn.microsoft.com/en-us/library/system.datetime.tolocaltime.aspx

To ste nikdy nerobili app cez viac casovych zon?:)

# # 11. 1. 2012 23:11:54 Siro

@all tak všade som ukladal cez DateTime.Now a teraz ma serie, že strácam zbytočne výkon :-(((((((

Konvertnúť to nie je problém, ale desiatky riadkov obsahuje DateTime.Now. Na nových projektoch budem ukladať cez UTC, ale pridám hodinu navyše.

@liero: normálne som to zistil DateTime.Now a pod to som dal DateTime.UtcNow - rozdiel bola hodina. Ešte pozriem či aj v robote na serveroch to bude rovnaké a ak hej, tak budem používať UTC + 1 hodina.

Ten čas a pásma to je haluz riadna.

# ... 11. 1. 2012 23:18:33 T

@vlko: neviem, neviem, ci si ku tej hanbe neprispel svojou troskou aj Ty bratm. UTC vo vseobecnosti nema nic s casovou zonou.
Z IT hladiska - triedy ako datetimeoffset, pripadne rozne formaty zapisu casu(xsd datetime, ktory zase vychadza z nejakeho ISO stand.) umoznuju definovat k lokalnemu casu aj informaciou o posune voci utc resp. informaciu o casovej zone.
Cize ak chce niekto pracovat s casovymi zonami resp. roznymi lokalnymi casmi preffered sposob je prave trieda datetimeoffset.(nie henta smelly oldschoolovina, ktoru si sem supol :-)
Inak...kto tvrdi, ze sa nikdy nepopalil na tychto veciach a ze sa vzdy nad tym nepozastavi ked na tieto veci pride po dlhsej dobe...tak ma moj obdiv, u mna plati opak ... dufam, ze to nie je tento pripad :-)))
Co ludi myli (aspon mna - a napisem to jednodychym jazykom) ze Z neznamena, ze to co je pred Z je UTC. To co je pred Z je lokalny cas. To co je za Z je posun voci UTC. Ak je tam len Z bez casoveho posunu tak je to UTC, lebo posun nie je (definovany) ziadny :-)

# uff? 11. 1. 2012 23:30:19 S(a)tano

UTC je čas s informáciou o časovej zóne? No neviem... stále je čas bez časovej zóny, ako každá štruktúra DateTime. UTC je pre jednoduchosť v podstate čas GMT - teda na nultom poludníku. Takže maximálne sa dá povedať, že je to čas s časovou zónou 0, ale žiadnu (inú) informáciu o časovej zóne nemá. Čisto programátorsky: či volám Now(), alebo UtcNow(), dostanem štruktúru DateTime, ktorá nevie nič o časovej zóne, na to slúži štruktúra DateTimeOffset.

ToLocalTime() v podstate spraví to, že k nemu pripočíta/odpočíta príslušné časové množstvo podľa aktuálnej časovej zóny, akú má nastavenú systém. Samozrejme iba ak Kind <> Local - ak už lokálny je, tak nič nie je potrebné.

# uff :) 11. 1. 2012 23:31:51 S(a)tano

Ech. T ma predbehol. :)

# UTC + 1 hodina 11. 1. 2012 23:37:04 S(a)tano

@Siro: Budeš používať UTC + 1 hodina? A čo zimný a letný čas? ;)

# noda time 12. 1. 2012 8:27:03 slavof

Chlapi, toto je seriozne dost komplikovana tema, ak chceme ist do detailov...

Dobry post napisal Jon Skeet - What's wrong with DateTime anyway? (http://noda-time.blogspot.com/2011/08/what-wrong-with-datetime-anyway.html)

A by to neboli z jeho strany len reci, tak sa dal do portovania Joda time - http://joda-time.sourceforge.net/ - co je asi najznamejsia a mozno aj najlepsia DateTime lib v Java svete do .NETu.

Vysledkom je Noda Time (http://code.google.com/p/noda-time/).

Samozrejme ani rozhodnutie pouzit Noda Time, ci inej podobnej custom DateTime library nemusi byt pre dany typ pouzitia idealne... Vid poznamky na konci Jonovho postu.

No ako som napisal na zaciatku, vec je komplikovana, a tak kazdy musi uvazit, ci sa mu oplati pre jeho projekt nie je naozaj vyhodnejsie jednoducho pisat "DateTime.Now" a neriesit nic dalsie, alebo ist do tychto not-easy veci.

Co sa tyka DateTime triedy v BCL - stale su celkom uzitocne best practices z MSDN - http://msdn.microsoft.com/en-us/library/ms973825.aspx.

-- s.

# RE: S(a)tano 12. 1. 2012 8:46:11 Siro

@S(a)tano: však sa pýtam, či keď pridám 1 hodinu čo je to v poriadku alebo nie, myslel som si - že to také jednoduché nebude.

Otázne je, že keď zavolám UtcNow a použijem ToLocalTime či to bude efektívnejšie ako Now.

Ď.

# UTC + 1 hodina 12. 1. 2012 9:30:37 S(a)tano

@Siro: Len tak si pripočítať 1 hodinu v poriadku nie je.

Osobne verím, že pri väčšine aplikácií nie je dôvod používať UtcNow namiesto Now kvôli výkonu. Meverím že nárast výkonu bude dostatočne citeľný (ak vôbec).

Pracovať s UTC časom by si mal, ak robíš kalkulácie nad DateTime dátami (pripočítavaš/odpočítavaš nejaký čas...). Pretože ak to budeš robiť v lokálnom čase, môžeš dostať nesprávny výsledok práve kvôli zimnému a letnému času - viď "Best Practice #3" v tom MSDN odkaze čo dal Slavo.

# no 12. 1. 2012 9:43:44 dušan

a tak ma napadlo. nebolo by predsalen rýchlejšie dať .Now a neriešiť veci okolo? :) či toto je presne ten bottle neck ktorý vám vašu appku dáva dole? :) nemyslím si.

# No 12. 1. 2012 10:28:13 NoPlease

Bez UTC casu a casovych zon sa nezaobides. Ide o to, ze ak v aplikacii pouzivas Datum a nie len casove inervaly, nedokazes pre ludi z roznych casovych pasiem zobrazovat korektne datumy.

# @ 12. 1. 2012 10:57:56 liero

tento kod mi zbehol vzdy za tri milisekundy. Neviem si predstavit scenar, kedy by datetime.now mohol sposobil nejake spomalenie.

Console.WriteLine(DateTime.Now.Millisecond);
for (int i = 0; i < 1000; i++)
{
var time = DateTime.Now;
int a = 0;
for (int j = 0; j < 10; j++)
{
a += i;
}
var time2 = DateTime.Now;
var span = time - time2;
var c = span.TotalMilliseconds + 1;
}

Console.WriteLine(DateTime.Now.Millisecond);
Console.ReadKey();

# ... 12. 1. 2012 15:04:16 T

@slavof:
ak si chcel poukazat na to, ze ani DateTimeOffset nie je odpovedou na vsetky mozne problemy hlavne pri vypoctoch tak suhlasim.(ale ani konvert do UTC vypocet a spatny konvert do lokalneho casu). Ale toto su pomerne zname veci.

# Jak pracovat s casem 19. 1. 2012 11:48:41 Martin

Uz jsem to kdysi resil:

http://blog.vyvojar.cz/mstr/archive/2010/11/20/bud-ek-dle-apple-aneb-pracujeme-s-datem-a-asem.aspx

Titulok:


Meno:


Url:
Koľko je 22 + 4? (ochrana proti spamu)

Komentár:


Najaktívnejší užívatelia
1. 34510 b. photo vlko
2. 16055 b. photo T
3. 15330 b. photo spigi
4. 6025 b. photo dudok
5. 5515 b. photo slavof
6. 5040 b. photo siro
7. 4720 b. photo duracellko
8. 3625 b. photo jakub
9. 3490 b. photo lubolacko
10. 3340 b. photo skippo