Skapa DateTime-värden
Now, Today och specifika datum.
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.
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
- Skapa DateTime-värden
- Formatera datum
- TimeSpan och varaktigheter
- Datumaritmetik