正如stuartd所说,您不能将DateTime与时区本地格式化。然而,您可以做的是创建自定义
   
    PatternLayoutConverter
   
   将使用
   
    Convert
   
   方法此处是
   
    DatePatternConverter
   
   :
  
  // log4net.Layout.Pattern.DatePatternConverter
protected override void Convert(TextWriter writer, LoggingEvent loggingEvent)
{
    try
    {
        this.m_dateFormatter.FormatDate(loggingEvent.TimeStamp, writer);
    }
    catch (Exception exception)
    {
        LogLog.Error("DatePatternConverter: Error occurred while converting date.", exception);
    }
}
  
   这个
   
    m_dateFormatter
   
   字段由选项初始化,您可以通过实现
   
    IOptionHandler
   
   界面
  
  
   拥有转换器后,通过在布局标记中声明它,将其添加到布局中
  
  <layout ...>
    <converter>
        <name value="myDateWithTimeZone" />
        <type value="MyApp.LogConverters.MyConverter" />
    </converter>
    <!-- rest of the layout -->
</layout>