Simple play icon Course
Skills Expanded

Date and Time Fundamentals

by Matt Johnson

This course will help you to understand dates and times, and how they should be used in software development.

What you'll learn

Managing dates and times properly is one of the most difficult things to get right in software. This is mostly due to how humans have introduced nuance into our calendars and clocks. In this course, I will help you straighten it all out. You will learn about UTC, daylight saving time, time zones, and calendar systems. You will also learn how date and time values are represented and manipulated in various programming languages. We will look closely at the different kinds of time zone data, and discuss various fallacies and gotchas that are commonly encountered. We will deep dive into how date and time are handled in the .NET Framework, and in JavaScript. We will also look at various libraries that make things slightly more bearable. Throughout the course, you will learn about real-world situations that require deeper thought about how date and time are handled in your applications, and I will give you practical advice on how to solve them.

Table of contents

About the author

Matt Johnson has over 15 years of professional software development experience and currently works for Microsoft. Matt is passionate about .NET development with C#, and specializes in Date and Time issues, especially the tricky ones involving time zones. He is a contributor to the Noda Time library for .NET, and the moment.js library for JavaScript. Matt answers questions habitually on StackOverflow, blogs at, and occasionally speaks at user groups and conferences.

Ready to upskill? Get started