2017-03-06 111 views
1

我无法获得当地时间。期望走出IM从API获得这样的数据在c中没有得到正确的日期时间格式#

样本数据

2017-03-06T09:34:20.545Z 

3/6/2017, 3:04:20 PM 

即时得到价值这样的 - 06/03/2017 04:34:20 AM

如何获得适当的时间在格式“3/6/2017,3:04:20 PM”。

我试图本地化的时间,但它给不正确的日期时间。

数据类型

public string UpdatedTime { get; set; } 

串updtime = bin.timestamp; // 2017年3月6日12点51分33秒 binModel.UpdatedTime = Convert.ToDateTime(updtime)的ToString(“M/d/yyyy,h:mm:ss tt“,CultureInfo.InvariantCulture); //预计时间 - 2017/3/6,6:21:33 PM

+0

你为什么试图存储'DateTime'在'string'属性在第一位?保持它是正确的类型,你不需要担心转换。另外,你如何创建这个不正确的“输出”? – DavidG

+0

不要* double *'d','M','H':let system * skip * zeores:'ToString(“d/M/yyyy h:mm:ss tt..'你可能想'h',而不是'H',因为'21:00 PM'而不是'9:00 PM'看起来有点奇怪 –

+0

尝试使用Convert.ToDateTime(bin.timestamp).ToString(“M/d/yyyy,HH:mm:ss tt “)。这会给你想要的输出。 – manika

回答

1

试试这个代码:

private void button1_Click(object sender, EventArgs e) 
    { 
     label1.Text = DateTime.Now.ToString("dd/MM/yyyy,hh:mm:ss tt"); // case sensitive 
    } 
1

我个人总是reference this page当我忘记如何格式化时间戳。如果您必须使用字符串,而不是DateTime,则可以执行此操作。

obj.UpdatedTime = string.Format("{0: d/m/yyyy, HH:mm:ss tt", Convert.ToDateTime(data)}); 

字符串的格式可不管你的选择,但链接的页面一直是我最有帮助的。如果您可以使用DateTime属性,请执行此操作。你会一直想用try/catch来包装它,并确认你正在获得你想要的值。

obj.UpdatedTime = Convert.ToDateTime(data); 

干杯

2

您有不正确的格式在这里:

"dd/MM/yyyy HH:mm:ss tt" 

HH使用24小时格式,但您使用AM/PM所以你需要12小时格式。使用hh

您的样本数据是:

2017-03-06T09:34:20.545Z 

这意味着什么。年份为2017,月份为03,日期为06,时间相同。

对于您需要的输出Month/Day/Year。但你使用这种格式:

"dd/MM/yyyy HH:mm:ss tt" 

在这里你得到Day/Month/Year

你应该改变你的格式(也没有在前面的零和与逗号):

"M/d/yyyy, h:mm:ss tt" 
+0

感谢它的工作正常...给所需的日期时间格式 – Swapna

+0

@Swapna,欢迎你 –

+0

你能告诉我如何改变为dd/mm/yyyy格式,我想显示日期在下个月,然后是第一年 – Swapna