
Define time zones and explain they are based on UTC with an offset; see Moscow UTC+03 and Bolivia UTC-03, and learn that UTC is marked by 'Z' or Zulu.
Master how to standardize date and time using ISO-8601 across XML and JSON, cover time formats, offsets, and RFC 3339 and RFC 822/1123 conventions.
Explore epoch time and Unix time, clarifying their difference and starting point. Learn how Unix time counts seconds since the Unix epoch and why conversion is needed for end users.
Explore how date and time values fit into different scopes, from combined date-time and date-only to time of day and elapsed time, using DateTime and TimeSpan to prevent common bugs.
Explore date-time fundamentals in .NET and SQL Server, including UTC, GMT, ISO-8601, Unix time, time zones, and the global and local perspectives that shape reliable time handling.
Define a time zone as a geographic region with the same local time and rules, including standard offsets and daylight-saving transitions, noting historic changes and need for time zone databases.
Explore the DateTime structure, its range and tick-level precision, and how DateTimeKind Unspecified, Local, and UTC affect conversions, with practical cautions about serialization and time zone handling.
Explore how DateTimeOffset handles value ranges, offsets, and perspectives, including local, unspecified, and UTC forms, and why TimeZoneInfo and Noda Time matter for historical data.
TimeSpan represents elapsed time with a wide range and 100 nanosecond precision, and factory methods like FromSeconds or FromMilliseconds offer readable APIs over constructors.
Examine the limitations of the BCL date time types, including DateTime and DateTimeOffset, and how UTC and local perspective affect accuracy. See why NodaTime and Quartz improve reliability and scheduling.
Discover the Noda Time library for .NET, a powerful API that handles date and time safely, supports IANA and Microsoft time zones, and enables separate date and time types.
Explore core time types, from Duration to Instant. See how Period and Interval model elapsed time, date ranges, and time zones with calendar and zone APIs.
Replace unstable time dependencies with Noda Time in unit tests by injecting IClock. Use system or zoned clocks and Noda Time testing doubles to stabilize logic with Instant and GetCurrentInstant.
Explore smalldatetime, datetime, and datetime2, their epoch baseline at 1900-01-01, precision and rounding, and why Microsoft recommends dateadd, datediff, and using datetime2 over older types.
Explore scheduling events across local and UTC perspectives, including storing time zone identifiers and repeat patterns, while handling daylight saving transitions with possible duplicates or gaps.
Discover best practices for date formats in .NET and SQL Server by avoiding hardcoded dates, using named parameters, carrying the format with the value, or adopting the ISO format YYYY-MM-DD.
Learn to avoid common pitfalls in date and time handling in .NET and SQL Server by mastering parsing, TryParseExact, time zones, 29th February corner case, and precise measurements with Stopwatch.
Explore date and time fundamentals in .NET and SQL Server, and engage with the course finale by accessing discounts, leaving reviews, and visiting the instructor's blog, mailing list, and Patreon.
Teaching Approach
No fluff, no ranting, no beating the air. I esteem your time. The course material is succinct, yet comprehensive. All the important concepts are covered. Particularly important topics are covered in-depth. For absolute beginners, I offer my help on Skype absolutely free, if requested.
Take this course, and you will be satisfied.
Build a solid foundation of working with Date and Time with this course
Almost all the software works with date and time in one form or another. Some programs, of course, need to work with date and time more than other. However, date and time hide many pitfalls even in very simple scenarios. We all know that security and logging are regular aspects of almost any program. There is a wise phrase that sounds like: “Developers recall about security when it is too late.” The same can be said about date and time. Most developers don’t even imagine how many bugs are hiding behind the simple face of date and time. Those bugs are sitting in programs and waiting for their moment to blow up your production code causing very unfortunate repercussions. That’s why working with date and time is the full-fledged and very important aspect of software development.
Have you watched magnificent enlightening TV Shows by BBC? This course in some parts is like those BBC shows, because you’ll learn many interesting surprising facts. Besides, being familiar with peculiarities of working with date and time, you can write much more reliable and maintainable applications.
Content and Overview
This course is aimed at all kind of developers. It provides solid theoretical base reinforced by practical material.
We start with basics of date and time. I’ll show you some real cases when bugs related to date and time caused unpleasant consequences, event deaths of people. You’ll learn why the hell Gregorian calendar was introduced, why the 5th of October 1582 doesn’t exist at all. And did you know that actually a minute can last more than 60 seconds? Yes, you heard that, a minute can last more than 60 seconds. You’ll learn what is UTC, GMT, what is the difference between them and how time gets synchronized between computers all over the world. And by the way, what is time at all, how humanity measures it? After that, you’ll be introduced to the concept of time zones, you’ll learn about different standards that regulate date and time formatting. You’ll learn what is Epoch Time and Unix Time. Finally, you’ll understand the difference between different date-time scopes and perspectives.
The next section is dedicated to Time Zones where you’ll learn about daylight saving time and different very odd case with time transitions back and forth. I’ll give you a full definition of a time zone. You’ll learn more about providers of time zone information: IANA and Microsoft. You’ll learn many interesting facts and what fallacies exist about time zones.
The third section is all about date and time related types from BCL in .NET. You’ll learn about DateTime, DateTimeOffset, TimeZoneInfo, TimeSpan, Calendars and Stopwatch. I’ll show you that DateTime hides many pitfalls. You’ll learn that actual precision of BCL types is not equal to 100 nanoseconds as declared in the documentation. You’ll see how many calendars exist and what we can do with them. The third section reveals all the problems with the types built-in to BCL, so in the next section, you’ll learn about a third-party library called “Noda Time”.
Yes, a whole section is dedicated to the Noda Time library. You’ll learn about features provided by this library. You’ll get an overview of all the core types such as: LocalTime, LocalDate, LocalDateTime, Instant, Interval, Duration, ZonedDateTime and others. You’ll also learn how to write unit tests on code which uses date and time values with the help of Noda Time.
The whole section is dedicated to best practices of working with date and time. You’ll see some astonishing things like arithmetic on dates and problems of birthday calculation. You’ll learn the problems related to parsing and how to overcome them. I’ll show you the problems of events scheduling and what to do to avoid common mistakes. You’ll learn about date and time ranges, “intervals” is a separate peculiar topic. I’ll also show some additional best practices.
In other words, an exciting journey is waiting for you, just take it, relax and enjoy.
So, in short, the course covers the following topics:
In the end, we will recap what you have learned.
How long is this course: The course is around 3 hours. All are video lectures. You will be able to download all the slides and code samples used in the course.
Keywords.