Je dois supprimer la partie heure de la date heure ou avoir probablement la date au format suivant sous la forme object
et non sous la forme string
.
06/26/2009 00:00:00:000
Je ne peux utiliser aucune méthode de conversion string
car j'ai besoin de la date sous la forme object
.
J'ai d'abord essayé de convertir DateTime
en string
, d'en supprimer la date spécifique, mais il ajoute 12:00:00 AM
dès que je le reconvertis en DateTime
object
.
Utilisez le Date property:
var dateAndTime = DateTime.Now;
var date = dateAndTime.Date;
La variable date
contiendra la date, la partie heure sera 00:00:00
.
Vous pouvez utiliser des chaînes de format pour donner à la chaîne de sortie le format de votre choix.
DateTime dateAndTime = DateTime.Now;
Console.WriteLine(dateAndTime.ToString("dd/MM/yyyy")); // Will give you smth like 25/05/2011
Lire plus ici .
Utilisez la méthode ToShortDateString. Voir la documentation http://msdn.Microsoft.com/en-us/library/system.datetime.toshortdatestring.aspx
var dateTimeNow = DateTime.Now; // Return 00/00/0000 00:00:00
var dateOnlyString = dateTimeNow.ToShortDateString(); //Return 00/00/0000
Consultez la propriété DateTime.Date .
Obtient le composant de date de cette instance.
La propriété Date
renverra la date à minuit.
Une option consiste à obtenir les valeurs individuelles (jour/mois/année) séparément et à les stocker dans le type souhaité.
var dateAndTime = DateTime.Now;
int year = dateAndTime.Year;
int month = dateAndTime.Month;
int day = dateAndTime.Day;
string.Format("{0}/{1}/{2}", month, day, year);
Aucune des réponses ci-dessus n'a résolu mon problème sur winforms.
le moyen le plus simple d'atteindreUNIQUEMENTdate est la fonction simple de Datetime:
DateTime dt = DateTime.now;
String BirthDate = dt.ToShortDateString();
Vous aurez seulement la date dans la chaîne d'anniversaire.
Essayez de créer votre propre structure pour cela. Objet DateTime aura la date et l'heure à la fois
Tu ne peux pas. Un DateTime dans .NET a toujours une heure, définie par défaut sur 00: 00: 00: 000. La propriété Date d'un DateTime est également un DateTime (!), Par conséquent, l'heure par défaut est 00: 00: 00: 000.
Il s’agit d’une pénurie dans le .NET Framework et on pourrait faire valoir que DateTime dans .NET enfreint le principe de responsabilité unique
Voici une autre méthode en utilisant String.Format
DateTime todaysDate = DateTime.UtcNow;
string dateString = String.Format("{0:dd/MM/yyyy}", todaysDate);
Console.WriteLine("Date with Time: "+ todaysDate.ToString());
Console.WriteLine("Date Only : " + dateString);
Sortie:
Date with Time: 9/4/2016 11:42:16 AM
Date Only : 04/09/2016
Cela fonctionne également si Date Time est stocké dans la base de données.
Pour plus de formatage Date et Heure, vérifiez ces liens:
L'espoir aide.
Cette façon de ne recevoir que la date sans heure
DateTime date = DateTime.Now;
string Strdateonly = date.ToString("d");
Sortie = 5/16/2015
J'ai écrit une structure DateOnly
. Ceci utilise un DateTime sous la peau mais aucune heure ne sont exposées publiquement:
using System;
public struct DateOnly : IComparable, IFormattable, IComparable<DateOnly>, IEquatable<DateOnly>
{
private DateTime _dateValue;
public int CompareTo(object obj)
{
if (obj == null)
{
return 1;
}
DateOnly otherDateOnly = (DateOnly)obj;
if (otherDateOnly != null)
{
return ToDateTime().CompareTo(otherDateOnly.ToDateTime());
}
else
{
throw new ArgumentException("Object is not a DateOnly");
}
}
int IComparable<DateOnly>.CompareTo(DateOnly other)
{
return this.CompareToOfT(other);
}
public int CompareToOfT(DateOnly other)
{
// If other is not a valid object reference, this instance is greater.
if (other == new DateOnly())
{
return 1;
}
return this.ToDateTime().CompareTo(other.ToDateTime());
}
bool IEquatable<DateOnly>.Equals(DateOnly other)
{
return this.EqualsOfT(other);
}
public bool EqualsOfT(DateOnly other)
{
if (other == new DateOnly())
{
return false;
}
if (this.Year == other.Year && this.Month == other.Month && this.Day == other.Day)
{
return true;
}
else
{
return false;
}
}
public static DateOnly Now()
{
return new DateOnly(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
}
public static bool TryParse(string s, ref DateOnly result)
{
DateTime dateValue = default(DateTime);
if (DateTime.TryParse(s, out dateValue))
{
result = new DateOnly(dateValue.Year, dateValue.Month, dateValue.Day);
return true;
}
else
{
return false;
}
}
public static DateOnly Parse(string s)
{
DateTime dateValue = default(DateTime);
dateValue = DateTime.Parse(s);
return new DateOnly(dateValue.Year, dateValue.Month, dateValue.Day);
}
public static DateOnly ParseExact(string s, string format)
{
CultureInfo provider = CultureInfo.InvariantCulture;
DateTime dateValue = default(DateTime);
dateValue = DateTime.ParseExact(s, format, provider);
return new DateOnly(dateValue.Year, dateValue.Month, dateValue.Day);
}
public DateOnly(int yearValue, int monthValue, int dayValue) : this()
{
Year = yearValue;
Month = monthValue;
Day = dayValue;
}
public DateOnly AddDays(double value)
{
DateTime d = new DateTime(this.Year, this.Month, this.Day);
d = d.AddDays(value);
return new DateOnly(d.Year, d.Month, d.Day);
}
public DateOnly AddMonths(int months)
{
DateTime d = new DateTime(this.Year, this.Month, this.Day);
d = d.AddMonths(months);
return new DateOnly(d.Year, d.Month, d.Day);
}
public DateOnly AddYears(int years)
{
DateTime d = new DateTime(this.Year, this.Month, this.Day);
d = d.AddYears(years);
return new DateOnly(d.Year, d.Month, d.Day);
}
public DayOfWeek DayOfWeek
{
get
{
return _dateValue.DayOfWeek;
}
}
public DateTime ToDateTime()
{
return _dateValue;
}
public int Year
{
get
{
return _dateValue.Year;
}
set
{
_dateValue = new DateTime(value, Month, Day);
}
}
public int Month
{
get
{
return _dateValue.Month;
}
set
{
_dateValue = new DateTime(Year, value, Day);
}
}
public int Day
{
get
{
return _dateValue.Day;
}
set
{
_dateValue = new DateTime(Year, Month, value);
}
}
public static bool operator == (DateOnly aDateOnly1, DateOnly aDateOnly2)
{
return (aDateOnly1.ToDateTime() == aDateOnly2.ToDateTime());
}
public static bool operator != (DateOnly aDateOnly1, DateOnly aDateOnly2)
{
return (aDateOnly1.ToDateTime() != aDateOnly2.ToDateTime());
}
public static bool operator > (DateOnly aDateOnly1, DateOnly aDateOnly2)
{
return (aDateOnly1.ToDateTime() > aDateOnly2.ToDateTime());
}
public static bool operator < (DateOnly aDateOnly1, DateOnly aDateOnly2)
{
return (aDateOnly1.ToDateTime() < aDateOnly2.ToDateTime());
}
public static bool operator >= (DateOnly aDateOnly1, DateOnly aDateOnly2)
{
return (aDateOnly1.ToDateTime() >= aDateOnly2.ToDateTime());
}
public static bool operator <= (DateOnly aDateOnly1, DateOnly aDateOnly2)
{
return (aDateOnly1.ToDateTime() <= aDateOnly2.ToDateTime());
}
public static TimeSpan operator - (DateOnly aDateOnly1, DateOnly aDateOnly2)
{
return (aDateOnly1.ToDateTime() - aDateOnly2.ToDateTime());
}
public override string ToString()
{
return _dateValue.ToShortDateString();
}
public string ToString(string format)
{
return _dateValue.ToString(format);
}
public string ToString(string fmt, IFormatProvider provider)
{
return string.Format("{0:" + fmt + "}", _dateValue);
}
public string ToShortDateString()
{
return _dateValue.ToShortDateString();
}
public string ToDbFormat()
{
return string.Format("{0:yyyy-MM-dd}", _dateValue);
}
}
Ceci est converti à partir de VB.NET, donc des excuses si certaines conversions ne sont pas à 100%
Je suis surpris que personne n'ait mentionné DateTime.Today
var date = DateTime.Today;
// {7/1/2014 12:00:00 AM}
Voir MSDN
Utilisez date.ToShortDateString () pour obtenir la date sans le composant heure
var date = DateTime.Now
var shortDate = date.ToShortDateString() //will give you 16/01/2019
utilisez date.ToString () pour personnaliser le format de la date
var date = DateTime.Now
var shortDate = date.ToString('dd-MMM-yyyy') //will give you 16-Jan-2019
Je suis tombé sur ce message en essayant de résoudre le Q. original.
J'utilise Asp.Net et après quelques recherches, j'ai trouvé que lorsque vous vous associez à la valeur de la date dans le code, vous pouvez laisser tomber l'heure pour qu'elle ne s'affiche pas à l'écran.
C #:
DateTime Today = DateTime.Now;
aspx:
<%: this.Today.ToShortDateString() %>
utilisation
DateTime.Now.ToString("dd-MM-yyyy");
Si vous le convertissez en chaîne, vous pouvez facilement le faire comme ceci.
Je prends date comme objet DateTime.
date.ToString("d");
Cela vous donnera seulement la date.
string dt = myCalender.SelectedDate.ToString();
string date = dt.Remove(10);
displayDate.Content = date;
Si vous prenez la date du calendrier, nous avons également le temps. Ce qui n'est pas nécessaire tout le temps. En utilisant cela, nous pouvons supprimer l'heure de la date.
Je sais que c'est un ancien message avec de nombreuses réponses, mais je n'ai pas vu cette façon de supprimer la partie temps. Supposons que vous ayez une variable DateTime
appelée myDate
, avec la date avec la partie heure. Vous pouvez créer un nouvel objet DateTime
à partir de celui-ci, sans la partie heure, à l'aide de ce constructeur:
public DateTime(int year, int month, int day);
Comme ça:
myDate = new DateTime(myDate.Year, myDate.Month, myDate.Day);
De cette façon, vous créez un nouvel objet DateTime
basé sur l'ancien, avec 00:00:00 comme heure.
d'après mon expérience, aucune des solutions mentionnées ne fonctionnait, peut-être parce que je voulais supprimer l'heure de la date extraite de la base de données, mais le code ci-dessous fonctionnait parfaitement:
var date = target_date.Value.ToString("dd/MM/yyyy");
Déclarez la variable en tant que chaîne.
exemple :
public string dateOfBirth ;
puis attribuez une valeur comme:
dateOfBirth = ((DateTime)(datetimevaluefromDB)).ToShortDateString();
Vous pouvez essayer ceci pour la seule date à partir de la date et l'heure
String.Format("{0:d/M/YYYY}",dt);
Où dt est la DateTime
Créez une structure qui ne contient que les propriétés souhaitées. Ensuite, une méthode d'extension pour obtenir facilement cette structure à partir d'une instance de DateTime.
public struct DateOnly
{
public int Day { get; set; }
public int Month { get; set; }
public int Year { get; set; }
}
public static class DateOnlyExtensions
{
public static DateOnly GetDateOnly(this DateTime dt)
{
return new DateOnly
{
Day = dt.Day,
Month = dt.Month,
Year = dt.Year
};
}
}
Usage
DateTime dt = DateTime.Now;
DateOnly result = dt.GetDateOnly();
static void Main(string[] args)
{
string dateStrings = "2014-09-01T03:00:00+00:00" ;
DateTime convertedDate = DateTime.Parse(dateStrings);
Console.WriteLine(" {0} ----------------- {1}",
convertedDate,DateTime.Parse(convertedDate.ToString()).ToString("dd/MM/yyyy"));
Console.Read();
}
Pour utiliser par datalist, repeater .. dans une page aspx: <% # Eval ("YourDateString"). ToString (). Remove (10)%>
Utiliser .Date d'un objet DateTime ignorera la partie heure.
Voici le code:
DateTime dateA = DateTime.Now;
DateTime dateB = DateTime.Now.AddHours(1).AddMinutes(10).AddSeconds(14);
Console.WriteLine("Date A: {0}",dateA.ToString("o"));
Console.WriteLine("Date B: {0}", dateB.ToString("o"));
Console.WriteLine(String.Format("Comparing objects A==B? {0}", dateA.Equals(dateB)));
Console.WriteLine(String.Format("Comparing ONLY Date property A==B? {0}", dateA.Date.Equals(dateB.Date)));
Console.ReadLine();
Sortie:
>Date A: 2014-09-04T07:53:14.6404013+02:00
>Date B: 2014-09-04T09:03:28.6414014+02:00
>Comparing objects A==B? False
>Comparing ONLY Date property A==B? True
L'obtention de la partie Date
d'un objet DateTime
n'a pas fonctionné pour moi car je travaille du côté client et les valeurs de service Web renvoyées ont des dates null
. En conséquence, il tente d'obtenir la partie Date d'une valeur null et lève une exception d'exécution. L'exemple suivant montre comment j'ai résolu mon problème:
string dt = employer.BirthDay.ToString();
if(dt == ""){ dt = "N/A";}
else dt = dt.Substring(0,10);
DateTime
valeur et affectez-la à la variable chaîne.Je partage ceci pour référence future.
Utilisez un peu de RegEx:
Regex.Match(Date.Now.ToString(), @"^.*?(?= )");
Produit une date au format: jj/mm/aaaa
Cela pourrait être fait simplement de cette façon:
var dateOnly = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day)
Ce code vous donne une vision claire de l'écriture de Date
ainsi que de Time
séparément
string time = DateTime.Now.Hour.ToString("00") + ":" + DateTime.Now.Minute.ToString("00") + ":" + DateTime.Now.Second.ToString("00");
string date = DateTime.Now.ToString("M-dd-yyyy");
MessageBox.Show(date + "\n" + time);
J'espère que cela t'aides.
Si vous souhaitez utiliser la liaison et afficher uniquement la portion de date sans heure
ToolTip = "{Transaction de liaison Modèle Date.Transaction, Format de chaîne = d}"
Essayez ceci, si vous utilisez une DateTimeOffset
, le fuseau horaire s’occupera également
date1 = date1.LocalDateTime.Date;
Si vous devez ajouter des heures, utilisez ceci:
date1 = date1.LocalDateTime.Date;
date1 = date1.AddHours(23).AddMinutes(59).AddSeconds(59);
Je pense que vous le feriez: DateTime onlyDate = DateTime.Today.Date; Ou, c'est la même DateTime onlyDate = yourDateTime.Date; Alors utilisez la propriété Date.
Si vous souhaitez supprimer une partie de la durée d'une DateTime
, essayez d'utiliser ce code:
DateTime dt = new DateTime();
dt = DateTime.Now; //ex: 31/1/2017 6:30:20 PM
TimeSpan remainingTime = new TimeSpan(0, dt.Hour - 5, dt.Minute - 29, dt.Second - 19);
dt=dt.Add(remainingTime);
label1.Text = dt.ToString("HH:mm:ss"); // must be HH not hh
la sortie: 01:01:01
DateTime dd=DateTiem.Now;
string date=dd.toString("dd/MM/YYYY");
Utilisez juste une ligne de code:
var dateAndTime = DateTime.Now.Date;
Pour obtenir uniquement la partie de date, utilisez la méthode ToString (),
exemple: DateTime.Now.Date.ToString ("jj/mm/aaaa")
Remarque: Les mm du format jj/mm/aaaa doivent être en majuscule.