如何在DateTime对象和字符串对象之间进行转换

分析问题

  DateTime对象输出到字符串的使用概率非常高,DateTime结构实现了四个ToString方法,下表列出了四个方法的特性:

方法 说明
ToString() 效果等同于ToString("G")和ToString("G",null)
DateTime.ToString(IFormatProvider) 由用户提供的格式化对象来进行格式化
DateTime.ToString(String) 由特定的字符串来表示各种格式
DateTime.ToString(String,IFormatProvider) 由特定字符串表示的格式和区域性特定格式信息来进行格式化

  ToString(String)方法和ToString(String,IFormatProvider)方法都接受一个字符串参数来表示特定的格式,而不同的是,ToString(String)方法使用本机的区域设置来进行格式化,而ToString(String,IFormatProvider)则使用了显示提供的区域设置对象。读者在使用ToString(String)方法时需要非常小心,因为这样的代码会在不同的客户机上产生不同的字符串。以下代码使用了DateTime常用的一些格式化字符串,并且比较了使用本地区域设置和不使用区域设置的区别。

using System;
namespace Test
{
    class DateTimeToString
    {
        static void Main()
        {
            DateTime now = DateTime.Now;
            //尝试各种format
            Display("d", now);
            Display("D", now);

            Display("f", now);
            Display("F", now);

            Display("g", now);
            Display("G", now);

            Display("m", now);
            Display("r", now);
            Display("s", now);
            Display("y", now);

            Display("t", now);
            Display("T", now);

            Display("u", now);
            Display("U", now);

            Display("dd-MM-yy", now);

            Console.Read();
        }

        static void Display(string format, DateTime time)
        {
            //依赖本地区域设置
            Console.WriteLine("使用区域设置{0}:{1}", format, time.ToString(format));
            Console.WriteLine("不使用区域设置{0}:{1}\r\n", format, time.ToString(format, System.Globalization.DateTimeFormatInfo.InvariantInfo));
        }
    }

}

  下面是程序的输出,读者可以清楚地看到依赖本地区域设置和不依赖本地区域设置的区别:

    

注意

  以上代码的DateTime格式化字符串非常常用,读者应该考虑记住它们,以避免每次使用时都需要查阅产品文档。

  读者已经了解了DateTime对象输出到字符串的方法,而相反的,DateTime也可以从一个字符串来获取信息来构造一个对象,也就需要用到DateTime的TryPase方法和Parse方法。Parse方法和ToString方法相互响应,实现了完全相反的功能,使用Parse方法时,也可以选择是否需要依赖本地的区域设置。当转换成功时,一个新的DateTime对象将被返回,而当转换失败时,将会抛出一个FormatException异常。由于异常控制程序将会对性能有较大的影响,在进行不确定转换时,使用TryParse方法进行尝试是一个很好的解决方案,当提供的字符串可转换为一个DateTime对象时,该方法会返回true并且进行转换,否则返回false。下面的代码展示了TryParse方法的使用:

string s="2014-8-19 14:17:22";
DateTime t;
if(DateTime.TryParse(s,out t)
{
  Console.WriteLine(t.ToString());
}

答案  

  DateTime可通过ToString方法来格式化输出到字符串,而相反地,TryParse和Parse方法则用来从一个字符串中得到信息并构造一个DateTime对象。  

如何在DateTime对象和字符串对象之间进行转换

时间: 2024-10-22 11:00:50

如何在DateTime对象和字符串对象之间进行转换的相关文章

有两个地方,用到了javabean对象和属性字符串值之间的转换

1.有两个地方,用到了javabean对象和属性字符串值之间的转换 2.一个是接入层spring mvc,将json字符串参数转换为javaBean.通过@RequestBody javaBean方式 3.另一个是,mybatis中javeBean对象与数据库字段值之间的转换. 在sql语句的insert/update/delete语句传入javaBean对象,用#{}转换为具体的属性 在sql语句的select中,将数据库中的字段转换为javaBean的属性值. 4.只要发生javaBean的

zg手册 之 python2.7.7源码分析(2)-- python 的整数对象和字符串对象

python 中的内置对象 python 中常用的内置对象有:整数对象,字符串对象,列表对象,字典对象.这些对象在python中使用最多,所以在实现上提供缓存机制,以提高运行效率. 整数对象 (PyIntObject) python 中的整数对象是不可变对象(immutable),即创建了一个 python 整数对象之后,不能再改变该对象的值. python 为创建整数对象提供了下面三种方法,其中 PyInt_FromString 和 PyInt_FromUnicode 内部也是调用 PyInt

有关包装类拆箱、装箱和整型与字符串型之间的转换

原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/5462489.html 1.8种基本数据类型都有各自的包装类,其对应关系为: 基本————————————包装类 byte————————————Byte short———————————Short char————————————Char int————————————Integer long————————————Long float————————————Float double———

学习笔记:javascript内置对象:字符串对象

1.字符串的创建   var str = "Hello Microsoft!";   2.字符串属性 constructor  返回创建字符串属性的函数 length   返回字符串的长度 prototype  允许您向对象添加属性和方法   3.字符串方法   - (1)charAt() --返回字符串在下标index位置的字符 stringObject.charAt(index)  // 如果参数index不在0与字符串长度之间,则返回一个空的字符串 'kdfjrjrtj'.cha

json字符串、json对象、数组 三者之间的转换

json字符串转化成json对象 // jquery的方法 var jsonObj = $.parseJSON(jsonStr) //js 的方法 var jsonObj = JSON.parse(jsonStr) json对象转化成json字符串 //js方法 var jsonStr1 = JSON.stringify(jsonObj) 例如 例如: <script type="text/javascript"> var jsonStr = '[{"id&quo

时间对象与字符串对象之间相互转换

public static void main(String[] args) throws Exception { /**   * 把时间对象转化成指定格式的字符串.  * 把指定格式的字符串转化成时间对象  * 一般使用  * */  SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  SimpleDateFormat s2 = new SimpleDateFormat("yyyy-MM-d

Java类对象和Json数据之间的转换

表字段过多,不想分别保存到数据中,使用频率低,所以考虑使用Jave类 -- Json之间的数据转换. 1.类转换Json,并保存到数据 Attribute.java 1 /** 2 * 属性数据结构 3 * 4 */ 5 public class Attribute { 6 7 private static final long serialVersionUID = -1L; 8 9 private Long attrId; 10 11 private List<AttributeValue>

OC基础教程11-结构体对象NSValue与NSString之间的转换

NSValue简介 NSValue是结构体的对象类型,它为我们封装了一系列的很好的方法 可以方便的把结构体转为对象类型 1.把普通的结构体转化为NSValue类型 + (NSValue *)valueWithPoint:(NSPoint)point; + (NSValue *)valueWithSize:(NSSize)size; + (NSValue *)valueWithRect:(NSRect)rect; + (NSValue *)valueWithEdgeInsets:(NSEdgeIn

转换时间对象和字符串对象&amp;添加时间

/* *基本思路,将字符串时间转化为时间对象,通过毫秒数来加减时间,然后在转化为字符串输出 */ //转化字符时间yy-mm-dd hh:mm:ss 为时间对象   使用split进行字符串的分割,取值并创建新的时间对象               var toDate = function(strDateTime){                    var strDateTimes = strDateTime.split(' ');                    var strD