J'ai une valeur de chaîne qui contient ou une date hébreu, ou une date grégorienne. Comment puis-je déterminer si c'est grégorien ou hébreu en C#?Comment puis-je déterminer si une chaîne est une date hébraïque ou grégorienne?
Répondre
Vous pouvez utiliser la méthode TryParse
de l'objet DateTime
- si elle a échoué avec la culture hébraïque, vous pouvez essayer avec le calendrier grégorien:
DateTime myDate = DateTime.Now;
CultureInfo culture = CultureInfo.CreateSpecificCulture("he-IL");
culture.DateTimeFormat.Calendar = new HebrewCalendar(); // To be sure
DateTimeStyles styles = DateTimeStyles.None;
if (DateTime.TryParse("כ\"ה/אייר/תש\"ע", culture, styles, out myDate))
{
// Hebrew date
}
culture = CultureInfo.CreateSpecificCulture("en-US");
if (DateTime.TryParse("2/30/2010", culture, styles, out myDate))
{
// US date
}
Avez-vous déjà essayé ceci? DateTime.Now n'est pas une méthode. le HébreuCalendar –
@Hans Passant - Merci d'avoir signalé mon erreur avec 'DateTime.Now' Cela a été corrigé (et j'ai ajouté le' HebrewCalendar') .Le code tel qu'il est est maintenant fonctionne – Oded
Cela fonctionne parfaitement, merci ! –
Pouvez-vous envoyer des échantillons pour les chaînes de date? – Oded
Dans quels formats? Si ce n'est que des dates récentes, ne pouvez-vous pas simplement tester si l'année est plus grande que, disons, 3000? – svick
@svick - Cela ne fonctionnerait pas, puisque l'année ressemblerait à תשס"ח et non sous la forme d'un nombre – Rubys