2016-09-13 3 views
-1

Я использую следующий код, чтобы получить местное время (IST). Но я не хочу отображать дату & секунд, а также хочу ее в 12-часовом (AM/PM) формате. Пожалуйста помоги.Получить Индийское время только в HH: MM часы и минуты

С помощью следующего кода я получаю время как этот

9/13/2016 11:38:17 AM

Я хочу, чтобы это как этот

11:38 AM

partial class Default3 : System.Web.UI.Page 
{ 
    DateTime UTCTime = System.DateTime.UtcNow; 
    DateTime IndianTime = UTCTime.AddHours(5.5); 
    private void Default3_Load(object sender, EventArgs e) 
    { 
     myTime.Text = IndianTime; 
    } 
    public Default3() 
    { 
     Load += Default3_Load; 
    } 
} 
+3

Поэтому в основном вы хотите пользовательский формат даты/времени? Это не имеет никакого отношения к часовому поясу на самом деле ... см. Https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx –

+1

'myTime.Text = IndianTime.ToString («t»); 'дает вам именно то, что вам нужно. Как упоминал @JonSkeet, это точно о форматировании даты. Это поможет вам в других форматах: [Метод DateTime.ToString (String)] (https://msdn.microsoft.com/en-us/library/zdtaw1bw (v = vs.110) .aspx) –

ответ

6

Вы можете отображать DateTime как этот

DateTime dt = DateTime.Parse("6/22/2009 07:00:00 AM"); 

dt.ToString("HH:mm"); // 07:00 // 24 hour clock // hour is always 2 digits 
dt.ToString("hh:mm tt"); // 07:00 AM // 12 hour clock // hour is always 2 digits 
dt.ToString("H:mm"); // 7:00 // 24 hour clock 
dt.ToString("h:mm tt"); // 7:00 AM // 12 hour clock 
+0

Спасибо. Если я не хочу показывать Секунды в свое время, что мне делать? Я попробовал ваше решение, но тем, что я получаю время. (09:30:00) Я хочу только это (09:30) – SUN

-2

Try:

partial class Default3 : System.Web.UI.Page 
{ 
    UTCTime = System.DateTime.UtcNow; 
    IndianTime = UTCTime.AddHours(5.5).Date; 
    private void Default3_Load(object sender, EventArgs e) 
    { 
     myTime.Text = IndianTime.ToShortDateString(); 
    } 
    public Default3() 
    { 
     Load += Default3_Load; 
    } 
} 

Если это не сработает, попробуйте что-то вроде:

DateTime UTCTime = System.DateTime.UtcNow; 
    DateTime IndianTime = UTCTime.AddHours(5.5).Date; 
    partial class Default3 : System.Web.UI.Page 
    { 
     private void Default3_Load(object sender, EventArgs e) 
     { 
      UTCTime = System.DateTime.UtcNow; 
      DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0); 
      IndianTime = epoch.AddDays(Math.Floor(IndianTime.Subtract(epoch).TotalDays)); 
      myTime.Text = IndianTime.ToShortDateString(); 
     } 
     public Default3() 
     { 
      Load += Default3_Load; 
     } 
    } 

Второй пример является излишним с точки зрения форматирования, но полезно, если вам нужно сравнить DateTime к чему-то хранится как дата (как в базе данных). Результат IndianTime во втором примере оценит значение «true», если вам нужно «удалить время для DateTime».

Помните - DateTime - это не что иное, как целое число - это зависит от вас, чтобы отформатировать его, как вы хотите.

+0

Что делает вы думаете, что OP хочет короткую строку даты? Этот код даже не компилируется, так как вы не можете преобразовать * число * в короткую строку даты. Здесь нет никакой пользы в том, чтобы помнить, что 'DateTime' - всего лишь целое число ... –

+0

Jon - indianTime - DateTime. DateTime.ToShortDateString будет полностью компилироваться в TextBox.Text. Моя точка зрения заключалась в том, что DateTime хранится как целочисленная структура. Тип DateTime представляет собой целое число (которое должно быть специфичным). –

+0

Что заставляет вас думать, что вы пытаетесь называть его «DateTime», во втором примере? 'indianTime' (uneclared) будет иметь тип' double'. И ваша мысль о том, что это целое число, не имеет отношения к ИМО. (Например, в Noda Time одна и та же информация хранится очень по-разному, но это не влияет на то, как вы ее форматируете.) –

0

Чтобы получить время в Индии в формате запроса, вы можете использовать этот

var zone = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"); 
var timeInIndia = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, zone); 
var timeInIndiaAsString = timeInIndia.ToString("hh:mm tt", CultureInfo.InvariantCulture); 
Смежные вопросы