我遵循了代码(简化为专注于问题).使用SimpleDateFormat模式打印时区信息.
你知道为什么z在不同的机器上被区别对待吗?如果有办法告诉Java在所有机器上统一对待它?
此类正在JavaMail中使用,这导致我们的电子邮件标头包含不符合RFC 2822的时间.
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class DateFormatTest {
String PATTERN = "z";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(this.PATTERN);
public static void main(final String[] args) {
new DateFormatTest().printTimezone();
}
public void printTimezone() {
System.out.println(this.simpleDateFormat.format(Calendar.getInstance().getTime()));
}
}
Run Code Online (Sandbox Code Playgroud)
输出:Windows/Mac
PDT
Run Code Online (Sandbox Code Playgroud)
输出:Linux(CentOS Linux版本7.5.1804(核心版))/ Ubuntu 14/18
GMT-07:00
Run Code Online (Sandbox Code Playgroud) 当我的进程内存被分页时,我正在尝试保护我的内存中数据以防止交换文件读取.
我知道Windows SDK中的CryptProtectMemory()可以用来加密内存缓冲区.
我在Linux上找不到任何这样的功能,如果有人知道,请告诉我.
我们可以使用mlock()以便内存不会被分页,但这是否意味着我的秘密是安全的?