با سلام.
وقتی رشته رو تبدیل به datetime می کنم ، ساعت هم توش هست.
می خوام ساعت نباشه و ذخیره یشه
لطفا راهنمایی نمایید
با تشکر
باسلام
فرمت بده بهش!!!
DateTime.Now.ToString("yyy/MM/dd");
این کد تاریخ میلادی سیستمو بصورت زیر نشون میده : 2016/12/10
اگه میخای تاریخ شمسی ذخیره کنی یه کلاس اضافه کن به پروژه و کد های زیرو بنویس داخلش:
اسم کلاسو PersianCulture.cs بذار:
using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Reflection; using System.Web; namespace GSD.Globalization { public class PersianCulture : CultureInfo { private readonly Calendar cal; private readonly Calendar[] optionals; /// <summary> /// كد رو بخوان تا بفهمي /// </summary> /// <param name="cultureName">fa-IR</param> /// <param name="useUserOverride">true</param> /// <remarks>لطفا در هنگام استفاده به سايت سايان اشاره كنيد.</remarks> public PersianCulture() : this("fa-IR", true) { } public PersianCulture(string cultureName, bool useUserOverride) : base(cultureName, useUserOverride) { //Temporary Value for cal. cal = base.OptionalCalendars[0]; //populating new list of optional calendars. var optionalCalendars = new List<Calendar>(); optionalCalendars.AddRange(base.OptionalCalendars); optionalCalendars.Insert(0, new PersianCalendar()); Type formatType = typeof(DateTimeFormatInfo); Type calendarType = typeof(Calendar); PropertyInfo idProperty = calendarType.GetProperty("ID", BindingFlags.Instance | BindingFlags.NonPublic); FieldInfo optionalCalendarfield = formatType.GetField("optionalCalendars", BindingFlags.Instance | BindingFlags.NonPublic); //populating new list of optional calendar ids var newOptionalCalendarIDs = new Int32[optionalCalendars.Count]; for (int i = 0; i < newOptionalCalendarIDs.Length; i++) newOptionalCalendarIDs[i] = (Int32)idProperty.GetValue(optionalCalendars[i], null); optionalCalendarfield.SetValue(DateTimeFormat, newOptionalCalendarIDs); optionals = optionalCalendars.ToArray(); cal = optionals[0]; DateTimeFormat.Calendar = optionals[0]; DateTimeFormat.MonthNames = new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" }; DateTimeFormat.MonthGenitiveNames = new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" }; DateTimeFormat.AbbreviatedMonthNames = new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" }; DateTimeFormat.AbbreviatedMonthGenitiveNames = new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" }; DateTimeFormat.AbbreviatedDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" }; DateTimeFormat.ShortestDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" }; DateTimeFormat.DayNames = new string[] { "یکشنبه", "دوشنبه", "ﺳﻪشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه" }; DateTimeFormat.AMDesignator = "ق.ظ"; DateTimeFormat.PMDesignator = "ب.ظ"; /* DateTimeFormat.ShortDatePattern = "yyyy/MM/dd"; DateTimeFormat.LongDatePattern = "yyyy/MM/dd"; DateTimeFormat.SetAllDateTimePatterns(new[] {"yyyy/MM/dd"}, 'd'); DateTimeFormat.SetAllDateTimePatterns(new[] {"dddd, dd MMMM yyyy"}, 'D'); DateTimeFormat.SetAllDateTimePatterns(new[] {"yyyy MMMM"}, 'y'); DateTimeFormat.SetAllDateTimePatterns(new[] {"yyyy MMMM"}, 'Y'); */ } public override Calendar Calendar { get { return cal; } } public override Calendar[] OptionalCalendars { get { return optionals; } } internal static DateTime PersianToGregorianUS(DateTime date) { throw new NotImplementedException(); } } }
نیازی به تغییر دادن کد ها نیست یه بار Rebuild کنی تاریختم شمسی میشه
با تشکر
اما خط زیر میاد تاریخ رو به رشته تبدیل می کنه که نمی شه تو فیلد از نوع date ذخیره کرد:
DateTime.Now.ToString("yyy/MM/dd");
در کنترلر :
System.Web.HttpContext.Current.Session["DateVorod"] = DateTime.Now.ToString("yyy/MM/dd");
یک session به اسم DateVorod که تاریخ روز رو ارسال میکنه( میتونید بصورت viewbag هم اینکارو انجام بدین
بعد تو view بصورت زیر:
<script> //DateVorod اسم session $(document).ready(function () { var today = '@Session["DateVorod"]'; $("#DateEnter").val(today); }) </script> <td>@Html.EditorFor(model => model.DateEnter, new { htmlAttributes = new { @readonly = "readonly", @class = "form-control", id = "DateEnter" } })</td>
با این کار تاریخ شما که 1395/10/30 ارسال شده تو دیتا بیس معادل میلادی ذخیره میشه و میتونی کوئری هم بزنی!
در ضمن فرمت دهی برای Date اینجوری:
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)