`

SimpleDateFormat格式化时间与Locale的关系

阅读更多

遇到格式化时间问题,在英文操作系统环境中,如下

import java.text.SimpleDateFormat;
import java.util.Date;

public class TestTimeStamp {
    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a ");
        try {
            Date date = sdf.parse(" 07/04/2011 02:24:16 pm ");
            // java.util.Date与java.sql.Date转换
            // java.sql.Date sqlDate = new java.sql.Date(date.getTime());           
            System.out.println(new Date(date.getTime()));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

结果:Mon Jul 04 14:24:16 CST 2011

 

在中文操作系统环境中,java.text.ParseException: Unparseable date: " 07/04/2011 02:24:16 pm"

 

why?

注意上面的 MM/dd/yyyy hh:mm:ss a 07/04/2011 02:24:16 pm

如果MM/dd/yyyy hh:mm:ss 07/04/2011 02:24:16

则中文环境结果:Mon Jul 04 02:24:16 GMT 2011

判断,与Locale设置有关,中文系统下

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a ", ,Locale.US);

结果:Mon Jul 04 14:24:16 GMT 2011

 

其实,和操作系统语言没有关系,而是Locale设置影响。

 

之前还遇到过SimpleDateFormat 非线程安全问题。

 

分享到:
评论

相关推荐

    Java SimpleDateFormat中英文时间格式化转换详解

    Java SimpleDateFormat中英文时间格式化转换详解 本文主要为大家详细介绍了Java SimpleDateFormat中英文时间格式化转换的知识点,包括日期和时间模式的设定、SimpleDateFormat的使用、日期和时间格式的转换等。 ...

    java数据格式化

    它可以动态插入变量到模板字符串中,并支持多种数据类型(如日期、时间、数字和货币)的格式化。例如: ```java String message = "Hello, {0}! Today is {1,date,full}."; Object[] variables = new Object[]{...

    Date格式化

    在实际开发中,日期格式化还涉及到与数据库交互、网络传输、JSON序列化等方面,因此理解和掌握日期格式化是每个程序员必备的技能。通过了解并熟练运用上述知识点,你可以有效地处理和展示日期数据,提高程序的用户...

    详解Java中格式化日期的DateFormat与SimpleDateFormat类

    在Java编程语言中,日期和时间的格式化是通过`java.text.DateFormat`和`java.text.SimpleDateFormat`类来实现的。这两个类主要用于将日期和时间对象转换为人类可读的字符串,以及将这些字符串解析回日期和时间对象。...

    JSTL格式化日期(一个jstl写的格式化日期,有用的着的看看吧)

    在JSTL中,我们可以使用`fmt`标签库来格式化日期和时间,这在显示和处理日期数据时非常有用。 `fmt`标签库是JSTL的一个重要组成部分,它基于Java的`java.text.SimpleDateFormat`类,可以对日期进行各种格式化操作。...

    时间格式化-自由扩展型.rar

    5. **国际化与本地化**:在自由扩展型时间格式化中,考虑到不同地区对日期和时间的显示习惯差异,如美国的月/日/年与欧洲的日/月/年的顺序,我们需要利用i18n(国际化)库,如Python的`locale`模块,来适应不同的...

    java 使用DateFormat类获取系统的当前时间

    除了 `SimpleDateFormat`,还有其他子类可以使用,如 `DateTimeFormatter`(Java 8及更高版本)或 `DateFormatSymbols`,它们提供了更多的日期和时间格式化选项。 在提供的 `DateFormatClass.java` 文件中,可能...

    与众不同的 Java 日期格式化大全

    在 Java 中,我们通常使用 `java.text.SimpleDateFormat` 类来处理日期和时间字符串的格式化。 日期格式化基础 在 Java 中,我们可以使用 `java.text.SimpleDateFormat` 类的 `format` 方法将日期对象格式化为符合...

    java国际化&时间处理

    `SimpleDateFormat`类是常用的日期时间格式化类,可以自定义日期时间格式字符串,如"yyyy-MM-dd HH:mm:ss"。然而,`SimpleDateFormat`不是线程安全的,所以在多线程环境中需要特别注意。 为了解决`SimpleDateFormat...

    JDK15-internationalization-guide.pdf

    Java平台提供了多种日期和时间格式化方式,包括SimpleDateFormat、DateTimeFormatter等。 Number Formatting 数字格式化是Java平台国际化的另一重要功能,用于将数字按照特定的格式显示。Java平台提供了多种数字...

    格林威治时间转化北京时间以及时间转换格式代码大全

    这些源代码可以帮助我们更好地理解在实际项目中如何高效地处理时间转换和格式化问题。 通过以上内容,我们可以了解到在Android开发中,处理时间转换和格式化的核心方法。实践中,开发者需要根据具体需求选择合适的...

    Java int 转 时间格式

    在Java编程中,经常需要处理时间相关的数据转换与格式化,例如将整型变量转换为特定的时间格式。本文主要介绍如何将一个`int`类型的值表示的时间戳(通常是以秒为单位)转换成可读性较高的日期格式。 #### 方法实现...

    关于Locale的一个列子

    `java.text.SimpleDateFormat`类可以结合`Locale`来格式化日期和时间,以符合特定区域的习惯。 4. **NumberFormat和Currency**: 类似地,数字和货币的格式也因地域而异。`java.text.NumberFormat`和`java.util....

    SpringMVC数据格式化.docx

    在Spring MVC中,数据格式化是处理数据展示和输入的重要环节。`Converter` 和 `Formatter` 是Spring MVC提供的两种工具,它们允许我们自定义类型转换,以满足特定的数据格式要求。 `Converter` 是用于在任何 `...

    Android日期时间格式国际化的实现代码

    下面是一段示例代码,该代码展示了如何根据不同locale对时间进行格式化: ```java public static CharSequence formatTimeInListForOverSeaUser( final Context context, final long time, final boolean simple, ...

    详解Java关于时间格式化的方法

    在Java编程中,时间格式化是一个常见的需求,特别是在处理与日期和时间相关的数据时,如从数据库中获取信息或向API接口返回数据。本文将详细讲解Java中如何进行时间格式化,以及在SpringBoot框架中如何高效地实现这...

    日期格式转换的Java实现

    `SimpleDateFormat`是`DateFormat`的一个子类,它可以让我们根据自定义的模式来格式化(日期 -> 文本)、解析(文本 -> 日期)日期/时间字符串。通过提供模式字符串,我们可以指定期望的日期格式。 ##### 2.1 模式...

    Java时间格式转化

    在使用`SimpleDateFormat`类进行日期时间的格式化和解析时,需要注意以下几点: 1. **线程安全问题**:`SimpleDateFormat`不是线程安全的,在多线程环境中应该避免共享实例,或者使用`ThreadLocal`来管理。 2. **...

    关于SimpleDateFormat的非线程安全问题及其解决方案.docx

    在Java开发过程中,`SimpleDateFormat`是被广泛使用的日期格式化工具类。然而,在多线程环境下,`SimpleDateFormat`存在非线程安全的问题,这可能会导致程序运行时出现异常或者错误的结果。 #### 二、问题分析 ###...

    JAVA获取系统时间.txt

    2. **`java.util.SimpleDateFormat`**:这是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)以及规范化日期字符串。 3. **`System....

Global site tag (gtag.js) - Google Analytics