为了解析“2011-12-07 15:33:17.372 CST”这个字符串
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Calendar;
public class Test{
public static void main(String[] args) throws ParseException{
System.out.println(Calendar.getInstance().getTimeZone());
System.out.println(Locale.getDefault());
System.out.println("Today is :" + new Date());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S z");
System.out.println("2011-12-07 15:33:17.372 CST被解析成了" + dateFormat.parse("2011-12-07 15:33:17.372 CST"));
System.out.println("2011-12-07 15:33:17.372 HKT被解析成了" + dateFormat.parse("2011-12-07 15:33:17.372 HKT"));
}
}
本地服务器A是香港时区(HKT),另一台服务器B是上海时区(CST),从B发给A的时间字符串为“2011-12-07 15:33:17.372 CST”,结果在A中被解析成了“Thu Dec 08 05:33:17 HKT 2011”
原因是因为SimpleDateFormat在解析这个字符串时,将CST当做了美国中部时区,属于西6区,而香港和北京时区都是东8区,两者相差14个小时,于是就有了上面那个问题
这可以通过将B服务器的时区修改为香港时区(HKT)来解决,在linux下面的命令是tzselect
分享到:
相关推荐
4. **SimpleDateFormat类**:这是一个具体的格式化类,用于将Date对象转换为字符串或将字符串解析为Date对象。它允许你定义日期和时间的格式,如"yyyy-MM-dd HH:mm:ss"。通过设置时区,SimpleDateFormat可以帮助你在...
`SimpleDateFormat.js`这个文件很可能包含了上述`SimpleDateFormat`类的完整实现,包括对各种日期格式的支持,如年、月、日、小时、分钟、秒等,并且处理了闰年、时区等复杂情况。在实际使用中,你可以这样使用它: ...
- `SimpleDateFormat`是线程不安全的,如果在多线程环境中使用,需要考虑同步问题。 - 日期和时间的格式化字符串要与实际情况对应,避免出现理解错误。 以上就是关于`SimpleDateFormat`的一些常见用法和注意事项,...
使用 SimpleDateFormat 可以实现日期和时间的格式化、解析和标准化。例如,使用 SimpleDateFormat 可以将 Date 对象格式化为字符串,或者将字符串解析为 Date 对象。 下面是一个简单的示例代码: ```java import ...
Java时区问题是一个在开发过程中常见的困扰,尤其是在处理与日期时间相关的业务时。Java通过`java.util.TimeZone`类来管理全球不同的时区信息。时区是地球上的地理位置,它决定了本地时间与协调世界时间(UTC)之间...
在标题和描述中提到的 "YYYY" 解析问题,通常指的是在使用 `SimpleDateFormat` 进行日期解析时遇到的困惑或错误。 首先,我们需要明确 `YYYY` 和 `yyyy` 在 `SimpleDateFormat` 中的区别。`yyyy` 是一个代表年份的...
3. **时区问题**:`SimpleDateFormat`会受到系统时区的影响,不同的时区可能会导致"YYYY"的计算结果不同。 4. **解析日期错误**:如果尝试解析的日期字符串不匹配给定的模式,也会抛出`ParseException`。 解决这个...
在实际开发中,我们可以根据需要选择不同的日期格式和解析方式,例如使用 "yyyy-MM-dd HH:mm:ss" 或 "yyyy/MM/dd HH:mm" 等格式。同时,我们也可以使用 SimpleDateFormat 类来对日期时间进行格式化,以满足不同的...
在Java编程语言中,`SimpleDateFormat`是日期和时间格式化的关键工具,它允许程序员将日期和时间对象转换为字符串,以及将字符串解析回日期对象。这个详细教程将引导你了解如何有效地使用`SimpleDateFormat`类。以下...
为了解决`SimpleDateFormat`的线程安全问题,Java 8引入了`java.time`包,这是新的日期时间API,包含了`LocalDate`、`LocalTime`、`LocalDateTime`、`ZonedDateTime`等类,它们提供了更强大、更安全、更易于使用的...
在实际应用中,为了避免时区问题,可以将时间存储为时间戳,这样在数据库中就不涉及时区问题。当需要显示时间时,将时间戳转换为`Date`对象,然后通过`SimpleDateFormat`转换为相应时区的本地时间。 总结来说,Java...
因此,在实际的应用中,遇到需要存储时间的问题时,可以在数据库中存储时间对应的时间戳,这样在数据库存储时就不会有时区的问题,而在应用中需要用到时间时,就把这个时间戳转为Date,再通过SimpleDateFormat转换成...
3. **时区问题**:默认情况下,`SimpleDateFormat`使用本地时区,如果需要处理不同时区的数据,可以通过设置时区来解决。 通过以上介绍,我们可以看到`SimpleDateFormat`提供了非常灵活的方式来处理日期和时间的...
此外,`SimpleDateFormat`也存在一些效率问题,因为它的解析过程可能涉及大量的字符串操作。在性能要求较高的场景下,可以考虑使用`java.time`包中的`DateTimeFormatter`类,它是Java 8及更高版本引入的,提供了更...
此外,SimpleDateFormat 也可以将字符串解析为日期和时间,使用 parse() 方法: ```java String dateString = "2017-12-28 18:21:73"; Date date; try { date = sdf.parse(dateString); System.out.println(date)...
标题“Spring项目前端显示的时间差8小时分析”主要涉及的问题是时区问题,这在分布式系统和Web开发中是常见的挑战。Spring框架被广泛用于Java后端开发,而时间差问题通常出现在处理日期和时间的转换时。让我们深入...
时区的设置可以影响到时间的解析和格式化。 在Java中,`TimeZone.getDefault()`方法会返回JVM当前运行所在操作系统的默认时区。这可能会导致问题,特别是当数据在不同时区之间传递时。因此,在启动应用程序时,通常...
`SimpleDateFormat`提供了强大的功能,能够将日期转换为文本(date -> text),将文本解析为日期(text -> date)以及对日期进行标准化。这个类是线程不安全的,因此在多线程环境中,建议每个线程拥有自己的`...
它涵盖了Java编程中常用的日期时间处理需求以及如何使用日期时间类来解决这些问题。 适用人群 本源码资源适用于具备一定Java编程基础的开发人员和学习者。特别适用于需要在Java项目中处理日期时间相关逻辑的人群。 ...
5. **修复步骤**:针对上述问题,修复步骤可能包括修改Jeecms源码中的日期处理逻辑,如使用`SimpleDateFormat`正确解析日期字符串;设置Java系统属性`user.timezone`以改变应用时区;或者在Tomcat配置中指定时区。在...