首页 新闻 会员 周边

日期转换问题

0
悬赏园豆:10 [已解决问题] 解决于 2014-06-18 15:51

首先说明本地机器格式:

下午 17:20 星期二  2014年6月10日

 

有个日期字符串  2014-6-10

当使用DateTime.TryParse()转换出的日期,就变成了我本地机器的格式

 

DateTime.TryParse() 这个方法,可以指定4个参数,但我不懂中间两个参数什么意思,以及如何设置时间格式

 

CultureInfo cultureInfo = CultureInfo.CurrentCulture;
DateTimeFormatInfo dateTimeFormatInfo = new DateTimeFormatInfo();
//dateTimeFormatInfo.SetAllDateTimePatterns(

 

我想有可能是这个地方,但搞不太懂。

烦请有经验的高手给指点下,谢谢!!

问题补充:

.net  c#

需要把这个日期作为参数传给数据库,而不是输出为字符串 

 

能像楼下几位说的,那么简单么?

Ropean的主页 Ropean | 初学一级 | 园豆:121
提问于:2014-06-10 17:25
< >
分享
最佳答案
0

今天用了 dotpeek反编译了,一看就明白了。

哈哈,这个反编译工具好用。

 

解决方法如下:

//获取不依赖于区域性的(固定的)默认只读 DateTimeFormatInfo 对象。
DateTime.TryParse(dateString, DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out date);

Ropean | 初学一级 |园豆:121 | 2014-06-18 15:49
其他回答(4)
0

DateTime是一个日期值.里面保存的是一个UTC的整数值.你锁说的 "就变成了我本地机器的格式"

是你在输出的时候就是.ToString的时候没有指定输出格式造成的

你可以在.ToString("yyyy-MM-dd")类似这种的字符串来指定输出格式

收获园豆:2
吴瑞祥 | 园豆:29449 (高人七级) | 2014-06-10 17:49

你日期在数据库里是怎么办保存的?

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-06-11 14:16
0

是什么语言啊

收获园豆:2
刘宏玺 | 园豆:14020 (专家六级) | 2014-06-10 19:41

DateTime.Now.ToString("下午h:m分 dddd yyyy年M月d日");

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2014-06-11 09:12
0

吴瑞祥 解释的很详细了 自己做个demo就好理解了

收获园豆:2
s_p | 园豆:138 (初学一级) | 2014-06-10 20:53
0

DateTime.TryParse 方法 (String s, IFormatProvider provider, DateTimeStyles styles, DateTime result)

参数详解

s
类型:System.String包含要转换的日期和时间的字符串。
provider
类型:System.IFormatProvider s. ' xml:space="preserve">一个对象,提供有关 s 的区域性特定格式设置信息。
styles
类型:System.Globalization.DateTimeStyles 枚举值的按位组合,该组合定义如何根据当前时区或当前日期解释已分析日期。None.' xml:space="preserve">一个要指定的典型值为 None
result
类型:System.DateTime DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed.' xml:space="preserve">当此方法返回时,如果转换成功,则包含与 s 中包含的日期和时间等效的 DateTime 值;如果转换失败,则为 MinValue。s parameter is null, is an empty string (""), or does not contain a valid string representation of a date and time.' xml:space="preserve">如果 s 参数为 null,是空字符串 ("") 或者不包含日期和时间的有效字符串表示形式,则转换失败。该参数未经初始化即被传递。

返回值

类型:System.Boolean true if the s parameter was converted successfully; otherwise, false.' xml:space="preserve">如果 s 参数成功转换,则为 true;否则为 false。
收获园豆:4
itlong | 园豆:224 (菜鸟二级) | 2014-06-16 16:41

不知是我没表达清楚,还是你理解错误了。 

 

我需要做的是,强制程序把形如时间字符串 2014-6-16 

转换为固定格式的日期对象,如2014-6-16 14:20 这样的,而不会随着机器的设定而改变。

支持(0) 反对(0) Ropean | 园豆:121 (初学一级) | 2014-06-16 16:44

@郭伟: 我看你问那个函数以及参数的意思 如果是字符串转化成日期 那直接用日期格式转换成吗

SimpleDateFormat sdm=new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");

Date time = sdm.format(需要转换的字符串);

支持(0) 反对(0) itlong | 园豆:224 (菜鸟二级) | 2014-06-16 16:55

@itlong: 这出来的,是一个字符串啊。。 

支持(0) 反对(0) Ropean | 园豆:121 (初学一级) | 2014-06-16 17:05

@郭伟: 变量time是日期类型  不是字符串

支持(0) 反对(0) itlong | 园豆:224 (菜鸟二级) | 2014-06-16 17:06

@itlong: SimpleDateFormat  哪个命名空间的啊

支持(0) 反对(0) Ropean | 园豆:121 (初学一级) | 2014-06-16 17:12

@郭伟: 

java.text.SimpleDateFormat

支持(0) 反对(0) itlong | 园豆:224 (菜鸟二级) | 2014-06-16 17:18

@itlong: 我怎么说不对劲呢,这是.net 哥哥 

看问题补充了吗

支持(0) 反对(0) Ropean | 园豆:121 (初学一级) | 2014-06-16 17:19

@郭伟: I'm sorry

支持(0) 反对(0) itlong | 园豆:224 (菜鸟二级) | 2014-06-16 17:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册