zoukankan      html  css  js  c++  java
  • C#中System.Globalization.DateTimeFormatInfo.InvariantInfo怎么用

    在开发的时候,碰到下面这样一个问题:

    在程序中显示当前系统时间,但是有一个要求,那就是,不论系统时间格式设置成什么,界面显示的时间都必须是“yyyy/MM/dd HH:mm:ss"格式的。

    刚开始,我在代码中是这样写的:

    this.label2.Text = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");

    系统设置的日期格式为:yyyy/M/d或yyyy/MM/dd

    此时执行程序,一切正常,显示效果为:

    但是,当我将系统日期格式设置为:yyyy-MM-dd(或其他不带“/”的系统日期格式)

    再执行程序,显示的时间格式却发生了变化,和系统设置的时间格式一致了。

    效果图如下:

    通过反复试验发现,程序最终显示的日期格式总是和系统设置的日期格式保持一致,也就是说代码中的DateTme.ToString("yyyy/MM/dd HH:mm:ss");部分不起作用了。

    看来,要想DateTme.ToString("yyyy/MM/dd HH:mm:ss")的设置起作用,必须排除系统日期设置的格式的影响,经过一番查找,发现:可以使用System.Globalization.DateTimeFormatInfo.InvariantInfo来排除当前Culture的影响。

    于是,将代码改为:

    this.label2.Text = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss",System.Globalization.DateTimeFormatInfo.InvariantInfo);


    这样的话,不管系统日期格式被设置成什么,显示的日期格式均为:yyyy/MM/dd

    一切,ok。

  • 相关阅读:
    Mysql语句练习
    Mysql-------查询各科成绩前三名的记录
    Mysql--查询"01"课程比"02"课程成绩高的学生的信息及课程分数
    模态框拖拽案例分析--元素偏移量 offset 系列
    CSS中z-index的属性与使用
    《将博客搬至CSDN》
    CSS中Position几种属性的总结
    考研数学一
    ubuntu16.04安装mysql报错解决
    LoRaWAN 规范1.0 (章节10~13)
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3049962.html
Copyright © 2011-2022 走看看