C# Academy · Lektion

Skapa DateTime-värden

Now, Today och specifika datum.

Lektion 1 av 413 steg

Skapa DateTime-värden är en gratis lektion i C# Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C# Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C# Academy innehåller totalt 4 lektioner.

Introduktion till DateTime

I C# representerar structen DateTime en enskild tidpunkt, inklusive både datum och tid på dagen.

Den finns i namnrymden System och är därför tillgänglig i alla program. Den kan användas för födelsedagar, tidsstämplar, tidsfrister och mycket annat.

Ett DateTime-värde innehåller år, månad, dag, timme, minut, sekund och även delar av en sekund.

DateTime.Now

Det enklaste sättet att hämta aktuellt datum och aktuell tid är DateTime.Now. Den läser av datorns lokala klocka.

Varje gång den anropas får ni en ny ögonblicksbild av tidpunkten. Eftersom resultatet beror på när anropet körs ändras det utskrivna värdet varje gång.

using System;

class Program
{
    static void Main()
    {
        DateTime now = DateTime.Now;
        Console.WriteLine(now);
    }
}

Dagens datum

Om bara datumet är viktigt och inte tiden används DateTime.Today. Det returnerar midnatt (00:00:00) för den aktuella dagen.

Det är praktiskt när dagar jämförs, eftersom tidsdelen då är satt till noll.

using System;

class Program
{
    static void Main()
    {
        DateTime today = DateTime.Today;
        Console.WriteLine(today.Year);
    }
}

UTC-tid

Datorer över hela världen använder UTC (koordinerad universell tid). Använd DateTime.UtcNow för att hämta aktuell tid i UTC, utan någon lokal tidszon.

UTC är det säkra valet för servrar och för lagring av tidsstämplar som ska läsas i många regioner.

using System;

class Program
{
    static void Main()
    {
        DateTime utc = DateTime.UtcNow;
        Console.WriteLine(utc.Kind);
    }
}

Skapa ett specifikt datum

Skapa ett exakt datum med konstruktorn new DateTime(year, month, day). Tidsdelen blir som standard midnatt.

Det passar perfekt för fasta datum, till exempel en helgdag eller en lanseringsdag. Eftersom värdet är fast blir resultatet helt förutsägbart.

using System;

class Program
{
    static void Main()
    {
        DateTime launch = new DateTime(2024, 1, 15);
        Console.WriteLine(launch.ToString("yyyy-MM-dd"));
    }
}

Lägg till tid på dagen

Med en längre konstruktor går det att ange timmar, minuter och sekunder: new DateTime(year, month, day, hour, minute, second).

Timmar använder 24-timmarsformat, så 14 betyder 14:00. På så sätt skapas en fullständig tidsstämpel med sekundprecision.

using System;

class Program
{
    static void Main()
    {
        DateTime meeting = new DateTime(2024, 3, 5, 14, 30, 0);
        Console.WriteLine(meeting);
    }
}

Läs av delarna

När ett DateTime-värde finns går varje del att läsa via egenskaperna Year, Month, Day, Hour, Minute och Second.

De returnerar vanliga heltal och är därför enkla att skriva ut eller jämföra.

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
        Console.WriteLine(d.Month);
        Console.WriteLine(d.Hour);
    }
}

Veckodag

Egenskapen DayOfWeek anger vilken veckodag ett datum infaller på. Den returnerar ett värde från enumtypen DayOfWeek, till exempel Monday eller Saturday.

Det finns även DayOfYear, ett heltal från 1 till 366.

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 1, 1);
        Console.WriteLine(d.DayOfWeek);
    }
}

Min- och maxvärden

DateTime har två särskilda konstanter. DateTime.MinValue är den 1 januari år 1 och DateTime.MaxValue är den 31 december år 9999.

De är användbara som standard- eller sentinelvärden när inget verkligt datum har angetts ännu.

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine(DateTime.MinValue);
        Console.WriteLine(DateTime.MaxValue.Year);
    }
}

Tolka en datumsträng

Text från en användare eller fil innehåller ofta ett datum. DateTime.Parse omvandlar en sträng till ett DateTime-värde.

Om texten inte är ett giltigt datum kastar Parse ett fel. För säkrare hantering går det att använda DateTime.TryParse, som returnerar true eller false i stället för att programmet kraschar.

using System;

class Program
{
    static void Main()
    {
        DateTime d = DateTime.Parse("2024-07-04");
        Console.WriteLine(d.Year);
    }
}

Säker tolkning med TryParse

DateTime.TryParse undviker undantag. Den tar emot texten och en out-variabel och returnerar true vid lyckat resultat.

Det här mönstret rekommenderas för osäker indata, till exempel ett värde som skrivits in av en användare.

using System;

class Program
{
    static void Main()
    {
        bool ok = DateTime.TryParse("not a date", out DateTime result);
        Console.WriteLine(ok);
    }
}

Snabbtest

Ni vill bara ha det aktuella datumet utan någon tidsdel (midnatt). Vilket anrop ska ni använda?

Sammanfattning

Ni har lärt er att skapa DateTime-värden. Använd DateTime.Now för den lokala tidpunkten, DateTime.Today för dagens datum vid midnatt och DateTime.UtcNow för universell tid.

Skapa fasta datum med new DateTime(...), läs av delar via Year, Month och DayOfWeek, och omvandla text med Parse eller det säkrare TryParse.

Gratis att börja

Lär dig C# med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
93
Lektioner
346

Vanliga frågor

Är lektionen ”Skapa DateTime-värden” gratis?

Ja – hela texten till ”Skapa DateTime-värden” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C# Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C# Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Skapa DateTime-värden”?

Now, Today och specifika datum. Ni övar på C# Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig C# Academy?

Du behöver inga förkunskaper. Utbildningen i C# Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Skapa DateTime-värden”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här C# Academy-lektionen?

Ja. Varje C# Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Skapa DateTime-värden
  2. Formatera datum
  3. TimeSpan och varaktigheter
  4. Datumaritmetik
← Tillbaka till C# Academy