如何使用c#asp.net拆分字符串值

如何使用c#asp.net拆分字符串值,c#,asp.net,datetime,C#,Asp.net,Datetime,我想拆分这个datetime数据类型格式的2015-08-11 10:59:41.830值,并使用c#asp.net将其转换为以下格式 45分钟前的8月11日 给定的日期时间(i.e-2015-08-11 10:59:41.830)将与当前日期时间进行比较,并按上述格式显示。请帮助我完成此操作。您需要使用解析日期,一旦解析完日期,就获取当前日期(datetime.Now)并从中减去解析的日期 这将生成一个结构。假设两个日期都指向同一个日期,则可以从解析的日期(日和月)和时间跨度(小时、分钟和秒)

我想拆分这个datetime数据类型格式的
2015-08-11 10:59:41.830
值,并使用c#asp.net将其转换为以下格式

45分钟前的8月11日


给定的日期时间(
i.e-2015-08-11 10:59:41.830
)将与当前日期时间进行比较,并按上述格式显示。请帮助我完成此操作。

您需要使用解析日期,一旦解析完日期,就获取当前日期(
datetime.Now
)并从中减去解析的日期


这将生成一个结构。假设两个日期都指向同一个日期,则可以从解析的日期(日和月)和时间跨度(小时、分钟和秒)中提取所需的片段来构造字符串。

对于特定格式,可以尝试使用
ParseExact()“yyy-MM-dd HH:MM:ss.fff”

npinti已经完成了,这里是代码部分

string s = "2015-08-18 10:59:41.830";
DateTime dt;
if(DateTime.TryParseExact(s, "yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{
    var ts = dt - DateTime.Now;
    Console.WriteLine("{0}, {1} minutes ago", 
                        dt.ToString("MMMM dd", CultureInfo.InvariantCulture),
                        ts.Minutes);
}
我在当地时间运行此代码,结果是9分钟前8月18日生成

请记住,表示TimeSpan对象的分钟分量,其范围是从
-59
59
。如果您想根据TimeSpan对象值获取所有分钟数,可以使用(或甚至作为
(int)ts.TotalMinutes
)。

您需要这个

  var yourString = "2015-08-11 10:59:41.830";
  var oldDate = DateTime.ParseExact(yourString, "yyyy-MM-dd hh:mm:ss.fff", CultureInfo.InvariantCulture);
  //The above two steps are only for if you have date in `string` type, but if you have date in `DateTime` format then skip these.
  var difference = DateTime.Now - oldDate; 
  //here old date is parsed from string or your date in `DateTime` format

  var result = string.Format("{0:MMMM dd}, {1} minutes ago", oldDate, difference.Minutes);

45分钟前
是静态的还是什么?如何精确计算这45分钟的部分?您可以通过
DateTime
subtract函数减去当前时间和上一个时间,然后可以使用“MMMM dd{0}分钟”格式化字符串,其中{0}是
经过的时间
值@Soner:No,它不应该是静态的。正如我所说的,给定的时间将与当前时间进行比较,结果就会出来。检查这个值
2015-08-11 10:59:41.830
,然后我需要转换成这个格式
8月11日,45分钟前
。如果给定的日期时间是datetime格式,那么?@satya我不理解你的评论。您所说的将采用日期时间格式是什么意思?我的意思是给定的值已经是日期时间数据类型,解析它是否重要?@satya如果您已经有了
datetime
,请使用它。您将无法解析它。如果您的
字符串与您的
CurrentCulture
的标准日期和时间格式相匹配,您可以直接使用
DateTime.Parse
方法。@satya感谢您的建议,我已经编辑了我的帖子。@satya将您的日期替换为
oldDate
  var yourString = "2015-08-11 10:59:41.830";
  var oldDate = DateTime.ParseExact(yourString, "yyyy-MM-dd hh:mm:ss.fff", CultureInfo.InvariantCulture);
  //The above two steps are only for if you have date in `string` type, but if you have date in `DateTime` format then skip these.
  var difference = DateTime.Now - oldDate; 
  //here old date is parsed from string or your date in `DateTime` format

  var result = string.Format("{0:MMMM dd}, {1} minutes ago", oldDate, difference.Minutes);